Du har ett fel åtminstone: CURDATE() <= '".date("Y-12-31")."'
Där kollar du om dagens datum är mindre än eller lika med sista december i år. Och det är ju alltid sant.
Jag antar att det du vill söka efter är dag <= '".date("Y-12-31")."'. Ett bättre sätt att uppnå det resultatet är: ... AND YEAR(dag) = YEAR(NOW())
Det bör dock ändå inte vara orsaken till ditt problem. Vilken datatyp är dag? Eller mer intressant, vad lagrar du där? Bara datum eller datum och tid?
Jag har två datum
1 - date som är när posten registeras. Typ "date"
2 - dag som är när händelsen sker. Typ "datetime" Detta för att kunna sortera händelse på samma dag efter när på dagen det sker.
Nej, helt OK är det inte. Det enda "date" jag ser i frågan ovan är date("Y-12-31") och sättet du använder det på är felaktigt, som jag förklarade ovan. (date är som du använder det där en funktion i PHP.)
Dessutom kan det eventuellt bli fel med CURDATE() <= dag om servern har en annan tidszon inställd. Om ett inlägg har dag satt till någon gång under natten/morgonen till idag kan det vara sparat som sen kväll igår, sett från databasens sida. Och kommer alltså inte dyka upp i resultatet. Prova att ändra tiden för den saknade posten till något senare och se om den syns. Då vet du i alla fall vad felet är.
Har ändrat select till $result=mysql_query("select * FROM kalender WHERE CURDATE() <= dag ORDER BY dag limit 20");
och det fungerar OK, men 1:a posten fortfarande borta.
Värdet på "dag" i den posten är "2010-04-12 10:00:00" - alltså inte tidzons-fel.
Har också testat med att ta bort posten - då är det gamla 2:a som försvinner.
Jag är klart fundersam!
Glömde bort den möjligheten - tack för det!
Jag fick följande svar: #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 '$result=mysql_query("select * FROM kalender WHERE CURDATE() <= dag ORDER BY dag"' at line 1
Skall nu kolla min manual
:r
Det enda phpMyAdmin föreslog (eller visade) var att sätta in 0 i LIMIT enligt
LIMIT 0 , 3 ( Var tvungen att ha med LIMIT, annars blir visningen för lång.)
Testade även utan det, men med samma resultat.
Kör SQL-frågan SHOW CREATE TABLE Kalender; i phpMyAdmin och kopiera svaret hit. Den SQL-frågan visar information angående tabellen Kalender som kan vara användbara.
Tomas, det här kanske är en dum fråga, men... Har du möjligen en for-loop där du sätter $i=1 fast du borde sätta $i=0
Eller kan det vara så att du kör hämtar ut data med while($row = mysql_fetch_assoc($result)) fast du kör mysql_fetch_assoc($result) en gång innan loopen startar så att du missar en post på det viset?
Jag hittade det Du pekade på, nämligen en **FOR-**loop som inte skulle vara med.
Fast det visste jag inte, men Din fråga gjorde att jag kontrollerade och testade och pang på - där satt den!
Jättestort tack för Din hjälp!
Kanon!
269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25