Seite 1 von 1

SQL Syntax Problem

Verfasst: 11.08.2006, 12:15
von mark007q
Ich komme bei einer Sache irgendwie nicht richtig weiter und zwar:

Bei folgendem Code:

Code: Alles auswählen

# Heute
#

# Themen
$time_today= mktime(0,0,0,date("m"),date("d"),date("Y"));
$where="post_date > $time_today";

$anz= $_db->fetch_array( $_db->query("SELECT COUNT(id) AS num
                                       FROM $TB_TOPIC WHERE $where"));

$topics_today= $anz["num"];

# Beiträge
$anz= $_db->fetch_array( $_db->query("SELECT COUNT(id) AS num
                                       FROM $TB_POST WHERE $where"));

$posts_today= $anz["num"];
#
#Gestern
#

# Themen
$yesterday=date("d")-1;
$time_yesterday= mktime(0,0,0,date("m"),$yesterday,date("Y"));
$where="post_date between $time_yesterday and $time_today";

$anz= $_db->fetch_array( $_db->query("SELECT COUNT(id) AS num
                                       FROM $TB_TOPIC WHERE $where"));

$topics_yesterday= $anz["num"];

# Beiträge
$anz= $_db->fetch_array( $_db->query("SELECT COUNT(id) AS num
                                       FROM $TB_POST WHERE $where"));

$posts_yesterday= $anz["num"];
erhalte ich diese Fehlermeldung:

SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date > 1155247200' at line 2
SELECT COUNT(id) AS num
FROM WHERE post_date > 1155247200
SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date > 1155247200' at line 2
SELECT COUNT(id) AS num
FROM WHERE post_date > 1155247200
SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date between 1155160800 and 1155247200' at line 2
SELECT COUNT(id) AS num
FROM WHERE post_date between 1155160800 and 1155247200
SQL Error: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE post_date between 1155160800 and 1155247200' at line 2
SELECT COUNT(id) AS num
FROM WHERE post_date between 1155160800 and 1155247200

Hat jemand eine Idee wo der Fehler in der Syntax liegen könnte?

Verfasst:
von

Verfasst: 11.08.2006, 13:15
von Bogomir
Problem ist die Angabe deines Datums ... normalerweise hat dieses ein Format wie z.B. 20060811 für den 11.08.2006 .

Verwende doch lieber die SQL-Datumsfunktionen:
z.B ...... "where post_date<now() and post_date>date_sub(now(), interval 1 day) "

... würde alles liefern,was kleiner heute und größer heute - 1 Tag ist.

Verfasst: 11.08.2006, 13:17
von Bogomir

Verfasst: 11.08.2006, 13:50
von cren
Am Datum wirds nicht liegen, zumindest nicht bei dieser Fehlermeldung. Schaut doch mal genau hin: Der Wert der Variablen $TB_TOPIC und $TB_POST ist unbekannt...
SELECT COUNT(id) AS num
FROM WHERE post_date > 1155247200

Verfasst: 11.08.2006, 14:32
von mark007q
Habs grad mal getestet, bringt immer noch dieselbe Fehlermeldung.

Verfasst: 11.08.2006, 14:35
von cren
Wenn die Fehlermeldungen genau gleich sind, sind die Variablenwerte immer noch unbekannt...

Verfasst: 11.08.2006, 15:14
von makemyday
Hast du die Tabellenname absichtlich rausgelöscht? Wenn nicht ist deren Fehlen der Fehler.