Hallo,
ich habe ein Modul in einem CMS wo man das Startzeit und Endzeit Datum eintragen kann für die Anzeige eines Eintrags. Das heisst z.B.
Startzeit: 2012-03-05
Endzeit: 2012-03-10
In diesem Fall wird der Eintrag nur in diesem Zeitraum anzeigt.
So jetzt zu meinem Problem ich will die Einträge aus diesem Modul in ein PDF Generien lassen, soweit so gut.
Dazu hab ich folgende Abfrage durchgeführt:
Dies funktioniert so auch nur hab ich gemerkert wen man jetzt bei einem Eintrag kein Start und Endzeit Datum angibt wird dieser trotzdem ausgeben und das liegt daran das es dann in die Tabelle "NULL" schreibt.
Dann dachte ich mir nehme ich das "IS NULL" weg dann solten ja nur noch diese angezeigt werden die zwischen dem Start und Endzeit sind und wen man nichts eingibt werden diese dann ja auch nicht mehr angezeigt.
Also hab ich das so umgeschrieben:
Ich hab das so im PHPMyAdmin getestet nur leider kommt dan folgende Fehlermeldung:
Jetzt ist die Frage was ist daran Falsch ich hab einfach nur das "NULL" rausgenommen und es funktioniert nicht mehr?
Besten Dank im vorraus für eure Hilfe.
ich habe ein Modul in einem CMS wo man das Startzeit und Endzeit Datum eintragen kann für die Anzeige eines Eintrags. Das heisst z.B.
Startzeit: 2012-03-05
Endzeit: 2012-03-10
In diesem Fall wird der Eintrag nur in diesem Zeitraum anzeigt.
So jetzt zu meinem Problem ich will die Einträge aus diesem Modul in ein PDF Generien lassen, soweit so gut.
Dazu hab ich folgende Abfrage durchgeführt:
PHP:
SELECT
item.item_id,
item.title,
item.start_time,
item.end_time,
fieldval.item_id,
fieldval.fielddef_id,
fieldval.value,
fielddef.fielddef_id,
fielddef.name
FROM
cms_module_mittagsmenu_item item
INNER JOIN
cms_module_mittagsmenu_fieldval fieldval ON fieldval.item_id = item.item_id
INNER JOIN
cms_module_mittagsmenu_fielddef fielddef ON fielddef.fielddef_id = fieldval.fielddef_id
WHERE
(item.start_time IS NULL OR TIMESTAMPDIFF(DAY, CURDATE()) <= 0)
AND
(item.end_time IS NULL OR TIMESTAMPDIFF(DAY, item.end_time, CURDATE()) <= 0);
Dies funktioniert so auch nur hab ich gemerkert wen man jetzt bei einem Eintrag kein Start und Endzeit Datum angibt wird dieser trotzdem ausgeben und das liegt daran das es dann in die Tabelle "NULL" schreibt.
Dann dachte ich mir nehme ich das "IS NULL" weg dann solten ja nur noch diese angezeigt werden die zwischen dem Start und Endzeit sind und wen man nichts eingibt werden diese dann ja auch nicht mehr angezeigt.
Also hab ich das so umgeschrieben:
PHP:
WHERE
(item.start_time IS TIMESTAMPDIFF(DAY, CURDATE()) <= 0)
AND
(item.end_time IS TIMESTAMPDIFF(DAY, item.end_time, CURDATE()) <= 0);
Ich hab das so im PHPMyAdmin getestet nur leider kommt dan folgende Fehlermeldung:
PHP:
item.start_timeTIMESTAMPDIFF(
DAY , CURDATE( ) ) <=0
)
AND (
item.end_time IS TIMESTAMPDIFF(
DAY , item.end_time, CURDATE( ) ) <=0
)
LIMIT 0 , 30;
MySQL meldet: Dokumentation
#1064 - 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 'TIMESTAMPDIFF( DAY , CURDATE( ) ) <= 0 ) AND ( item . end_time IS TIMESTAMPDIFF(' at line 1
Jetzt ist die Frage was ist daran Falsch ich hab einfach nur das "NULL" rausgenommen und es funktioniert nicht mehr?
Besten Dank im vorraus für eure Hilfe.
Zuletzt bearbeitet: