Postdate cannot be empty!?
Ik voer de volgende query uit, voor een weblog systeem.
Hij haalt de berichten uit de database die niet ouder zijn dan 4 dagen, maar ondanks dat, laat hij altijd 5 actuele berichten zien. Dus stel dat er 2 berichten zijn die niet ouder zijn dan 4 dagen, dan vult hij dat aan met de 3 nieuwste berichten die wel ouder zijn dan 4 dagen.
Het rare is nu, hij doet het goed, alleen krijg ik de volgende foutmelding:
Mijn MySQL kolom is 'datetime'. Verder is de kolom in geen enkele row leeg. En het rare is dus, dat als ik de errors hide d.m.v. @, dat hij het dan wel goed doet.
Als ik " postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY) AND " weghaal, geeft hij geen error meer. Daar ligt het dus aan. Ik heb al enkele dingen geprobeerd te wijzigen maar het lukt me echt niet. Ik denk dat ik er te lang mee bezig ben, ik zie het niet meer.
Met de vorige MySQL versie werkte het prima, maar nu ik MySQL geupgrade heb werkt het niet meer.
De huidige PHP versie die ik draai is 5.2.1 en de MySQL versie is 5.0.33.
Hij haalt de berichten uit de database die niet ouder zijn dan 4 dagen, maar ondanks dat, laat hij altijd 5 actuele berichten zien. Dus stel dat er 2 berichten zijn die niet ouder zijn dan 4 dagen, dan vult hij dat aan met de 3 nieuwste berichten die wel ouder zijn dan 4 dagen.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
id
, title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y') as showdate
, DATE_FORMAT(postdate, '%Y/%m/%d') as dirdate
, cat FROM weblogs
WHERE
postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY)
AND active = 1 ORDER BY postdate DESC
id
, title
, message
, DATE_FORMAT(postdate, '%d.%m.%Y') as showdate
, DATE_FORMAT(postdate, '%Y/%m/%d') as dirdate
, cat FROM weblogs
WHERE
postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY)
AND active = 1 ORDER BY postdate DESC
Het rare is nu, hij doet het goed, alleen krijg ik de volgende foutmelding:
Mijn MySQL kolom is 'datetime'. Verder is de kolom in geen enkele row leeg. En het rare is dus, dat als ik de errors hide d.m.v. @, dat hij het dan wel goed doet.
Als ik " postdate > ADDDATE(NOW(), INTERVAL 3456000 DAY) AND " weghaal, geeft hij geen error meer. Daar ligt het dus aan. Ik heb al enkele dingen geprobeerd te wijzigen maar het lukt me echt niet. Ik denk dat ik er te lang mee bezig ben, ik zie het niet meer.
Met de vorige MySQL versie werkte het prima, maar nu ik MySQL geupgrade heb werkt het niet meer.
De huidige PHP versie die ik draai is 5.2.1 en de MySQL versie is 5.0.33.
PHP hulp
20/11/2024 12:38:06Robert Deiman
16/03/2007 10:09:00Kan het niet zijn dat je interval te groot is voor de huidige MySQL versie? Je hebt daar een interval van bijna 3,5 miljoen dagen staan, misschien dat het dat gewoon niet aan kan. Probeer eerst eens met 1 dag.
Ah kijk! Daar heb ik wat aan. Het lijkt nu te werken. Eerst moest het in seconden opgegeven worden, nu niet meer blijkt! Dank!
Robert Deiman
16/03/2007 11:06:00@Bas
Lijkt me ook logisch, omdat je een interval in Days hebt staan :P Jij kijkt bijna een miljoen jaar verder in je voorbeeld. Weet je wel hoeveel mileniumbugs daar tussen zitten :P
Het kan ook wel in seconden, maar dan moet je van DAYS -> SECONDS maken
Lijkt me ook logisch, omdat je een interval in Days hebt staan :P Jij kijkt bijna een miljoen jaar verder in je voorbeeld. Weet je wel hoeveel mileniumbugs daar tussen zitten :P
Het kan ook wel in seconden, maar dan moet je van DAYS -> SECONDS maken