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 Infor
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.