28. januar 2012 - 12:32Der er
23 kommentarer og 1 løsning
Kommende fødselsdage/begivenheder
Hej!
Jeg er ved at lave et script der viser de kommende 10 fødselsdage i min bruger db. Fødselsdage er angivet som ÅÅÅÅ-MM-DD i databasen, og mit script sorterer dem jo selvfølgelig efter årstal, og ikke efter kommende fødselsdage. Hvordan får jeg det sorteret fra, så den viser kommende fødselsdage, uden at tage højde for årstal?
Jeg vil så gerne have det her til at virke, men jeg er ved at få lange nosser og grå hår :-(
$idag = date("Y-m-d"); $sql = "SELECT * FROM tabelnavn WHERE foedselsdag >= '$idag' ORDER BY foedselsdag ASC LIMIT 10;"; $result = mysql_query($sql);
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Det er helt klart en opgave, man bør overlade til databasen. Den gør det laaangt mere effektivt - men det kræver, den ved, hvilken type data den behandler. Er feltet f.eks. sat til varchar, vil data naturligvis ikke blive sorteret som datoer
Tak for hjælpen! I har ret, jeg havde pillet for meget i databasen ;-)
Man skal lade være med at sidde til den lyse morgen og kode, ens logiske sans forsvinder stille og roligt :-D Men tak fordi i reddede mig fra grå hår og lange nosser ;-)
Og bedst som jeg troede at alt var løst får jeg en ny fejl :( Den viser kun datoer som er i fremtiden, og ikke i fortiden. Se, den er ikke god :( Brugte php-scriptet
- jeg vil gerne tillade mig at slå tvivl om den påstand. Det script jeg gav dig, omskriver årstallet til 1970 (der selvfølgelig kunne være et andet, men det er passende), inden den sammenligner, hvilket gør at den eneste forskel der kan være, er måned og dag. Derfor er det umuligt, at det bliver sorteret efter årstal.
Har også lige testet det af, og det fungerer som det skal. :)
$sql = "SELECT * FROM tabelnavn WHERE DAYOFYEAR(foedselsdag) >= DAYOFYEAR(NOW()) ORDER BY DAYOFYEAR(foedselsdag) ASC LIMIT 10;"; $result = mysql_query($sql);
Ellers tak, jeg samler ikke point. Spørg evt. andre i tråden, som du mener, har bidraget til en løsning. Ellers lægger du selv et svar og accepterer det, så tråden lukkes =)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.