26. april 2010 - 23:34
Der er
6 kommentarer og 1 løsning
Gruppering af datoer fra mysql db
Hej! Jeg sidder med en lille udfordring. Jeg vil gerne liste en række events efter dato, men også i grupper af måneder. Ønskesenariet er: <ul> <li>April 2010</li> <li>0404 event</li> <li>0504 event</li> <li>0604 event</li> <li>Maj 2010</li> <li>0705 event</li> <li>2105 event</li> <li>2505 event</li> </ul> Her er min php-kode: $getdata = mysql_query("SELECT * FROM events WHERE dato > '$today' ORDER BY dato ASC LIMIT 200") or die(mysql_error()); if(mysql_num_rows($getdata) == 0) { print"Ingen events..."; } else { print"<ul>\n"; while($row = mysql_fetch_array($getdata)) { print"<li><a href='#event".$row['id']."'><span class='eventdatelist'>".$row['dato']."</span>".$row['navn']."</a></li>\n"; } print"</ul>\n"; } Jeg kan simpelthen ikke gennemskue hvordan jeg får den flettet ind? Nogen med nogle bud? pft!
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
27. april 2010 - 01:47
#1
$getdata = mysql_query("SELECT YEAR(dato),MONTH(dato),dato,navn FROM events WHERE dato > '$today' ORDER BY dato ASC LIMIT 200") or die(mysql_error()); og så lader du din PHP kode udskrive en overskrift hvergang der starter en ny måned.
27. april 2010 - 01:51
#2
$getdata = mysql_query("SELECT YEAR(dato) AS y,MONTH(dato) AS m ,dato,navn FROM events WHERE dato > '$today' ORDER BY dato ASC LIMIT 200") or die(mysql_error()); og: $lastyear = -1; $lastmonth = -1; while($row = mysql_fetch_array($getdata)) { if($lastyear != $row['y'] || $lastmonth != $row['m']) { // udskriv $row['y'] og $row['m'] $lastyear = $row['y']; $lastmonth = $row['m']; } print"<li><a href='#event".$row['id']."'><span class='eventdatelist'>".$row['dato']."</span>".$row['navn']."</a></li>\n"; }
27. april 2010 - 11:29
#3
Har prøvet at sætte det ind, men uden held. Kan ikke lige gennemskue, hvor bliver "måneds<li>'en" smidt ind? den linie der bliver printet er kun til eventlinierne pft! Kim
Slettet bruger
27. april 2010 - 14:51
#5
Som @arne_v har skrevet:"// udskriv $row['y'] og $row['m']" Betyder du selv skal sætte noget ind der. Alt du vælger at udskrive inde i den IF vil kun blive vist hver gang man støder på en ny månede.