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 tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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
27. april 2010 - 14:50
#4
Du skal erstatte: // udskriv $row['y'] og $row['m'] med noget der faktisk udskriver !
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.
27. april 2010 - 15:04
#6
Selvfølgelig! Perfekt!! Tak! Hvis du lige svarer.... =) Kim
27. april 2010 - 15:08
#7
svar
Vi tilbyder markedets bedste kurser inden for webudvikling