08. januar 2006 - 18:29
Der er
16 kommentarer og 1 løsning
Vandret loop af kalender
Hej med jer, Har har forsøgt mig med PHP og har i den forbindelse lavet en slags kalender med alle ugererne og en status for hver uge. I min database har 3 tre felt navne: - kalenderID - uge (her har jeg indtaste fra uge 1 til uge 52) - ugestatus (her har jeg status. Enten "ledig" eller "optaget") Lige nu har jeg lavet det sådan at jeg hiver daterne ud af databasen og viser det på en horizontal række. Sådan her: 1: ledigt 2: Ledigt 3: Ledigt 4: Optaget 5: Ledigt o.s.v derud af. ******************************************** Sådan her ser min kode ud: <table width="451" border="0" cellspacing="0" cellpadding="0" class="contentTabel"> <tr> <td width="23"></td> <td width="93"></td> <td width="20"></td> <td width="93"></td> <td width="20"></td> <td width="93"></td> <td width="20"></td> <td width="93"></td> </tr> <? $uger = mysql_query("SELECT * FROM kalender ORDER BY uge ASC") or die (mysql_error()); while ($row = mysql_fetch_array($uger)) { $hentStatus = $row["uge_status"]; if( $hentStatus == "Ledig"){ ?> <td align="right"><? print $row["uge"] ?>:</td> <td> <a href="kalender_bestil.php?uge=<? print $row["uge"] ?>"><? print $row["uge_status"] ?></a></td> <? }else{ ?> <td align="right"><? print $row["uge"] ?>:</td> <td> <span style='color:#980505'><? print $row["uge_status"] ?></span></td> <? } ?> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="1" colspan="8" bgcolor="#FFFFFF"></td> </tr> <? } ?> <tr> <td height="4" bgcolor="#DBDCD7" colspan="8"></td> </tr> </table> ********************************************* Det som jeg skal have hjælp til er at få det vist på 4 koloner med 13 uger i hver.Sådan her: 1: ledigt 14: Ledigt 27: Ledigt 40: Ledigt 2: Ledigt 15: Ledigt 28: ledigt 41: Ledigt 3: Ledigt o.s.v o.s.v o.s.v 4: Optaget 5: Ledigt 6: ledigt 7: Ledigt 8: Ledigt 9: Optaget 10: Ledigt 11: Ledigt 12: Ledigt 13: Ledigt Jeg håber jeg har forklaret mig forståeligt :o)
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?
08. januar 2006 - 18:41
#1
Det er bare at lave dit while() udtræk så at efter 13 udtræk laver den en ny kolonne :)
08. januar 2006 - 18:49
#2
Et bud: $uger = mysql_query("SELECT * FROM kalender ORDER BY uge ASC") or die (mysql_error()); $ugeStatus = array(); while ($row = mysql_fetch_array($uger)) { $hentStatus = $row["uge_status"]; $ugeStatus[$row["uge"]] = $row["uge_status"]; } echo "<table border='1'>"; for ($ugeNr=1; $ugeNr<=13; $ugeNe++) { echo "<tr>"; for ($offset=0; $offset<53; $offset+=13); { $ugeNr2 = $ugeNe + $offset; if (array_key_exists($ugeNr2, $ugeStatus) { echo "<td>" . $ugeNr2 . "<br>"; if ($ugeStatus[$ugeNr2]) { echo "<a href='kalender_bestil.php?uge=" . $ugeStatus[$ugeNr2] . "'>" . $ugeStatus[$ugeNr2] . "</a>"; } else { echo $ugeStatus[$ugeNr2]; } echo "</td>"; } else { echo "<td> </td>"; } } echo "</tr>"; } echo "</table>"; ?>
08. januar 2006 - 18:59
#3
Til Nielle --> Jeg tror ikke dit eksempel fungere. Den står bare og loadder siden hele tiden
08. januar 2006 - 19:03
#4
Til webstuff --> Så langt kan jeg godt se. Men kan du hjælpe med at løse det?
08. januar 2006 - 19:07
#5
Der var nogle s,å kode-fejl. Prøv dette: $uger = mysql_query("SELECT * FROM kalender ORDER BY uge ASC") or die (mysql_error()); $ugeStatus = array(); while ($row = mysql_fetch_array($uger)) { $hentStatus = $row["uge_status"]; $ugeStatus[$row["uge"]] = $row["uge_status"]; } echo "<table border='1'>"; for ($ugeNr=1; $ugeNr<=13; $ugeNr++) { echo "<tr>"; for ($offset=0; $offset<53; $offset+=13); { $ugeNr2 = $ugeNr + $offset; if (array_key_exists($ugeNr2, $ugeStatus) { echo "<td>" . $ugeNr2 . "<br>"; if ($ugeStatus[$ugeNr2]) { echo "<a href='kalender_bestil.php?uge=" . $ugeStatus[$ugeNr2] . "'>" . $ugeStatus[$ugeNr2] . "</a>"; } else { echo $ugeStatus[$ugeNr2]; } echo "</td>"; } else { echo "<td> </td>"; } } echo "</tr>"; } echo "</table>"; ?>
08. januar 2006 - 19:38
#6
Det hjalp lidt. Den viser nu en tabel med 13 rækker med en tom kollone i.
08. januar 2006 - 19:41
#7
Prøv lige at rette: if (array_key_exists($ugeNr2, $ugeStatus) - til: if (array_key_exists($ugeNr2, $ugeStatus))
08. januar 2006 - 20:38
#8
det havde jeg allerede gjort :o)
08. januar 2006 - 21:36
#9
Hvad giver denne her: $uger = mysql_query("SELECT * FROM kalender ORDER BY uge ASC") or die (mysql_error()); $ugeStatus = array(); while ($row = mysql_fetch_array($uger)) { $hentStatus = $row["uge_status"]; $ugeStatus[$row["uge"]] = $row["uge_status"]; } echo "<table border='1'>"; for ($ugeNr=1; $ugeNr<=13; $ugeNr++) { echo "<tr>"; for ($offset=0; $offset<53; $offset+=13); { $ugeNr2 = $ugeNr + $offset; if (array_key_exists($ugeNr2, $ugeStatus)) { echo "<td>" . $ugeNr2 . "<br>"; if ($ugeStatus[$ugeNr2] == "Ledig") { echo "<a href='kalender_bestil.php?uge=" . $ugeStatus[$ugeNr2] . "'>" . $ugeStatus[$ugeNr2] . "</a>"; } else { echo $ugeStatus[$ugeNr2]; } echo "</td>"; } else { echo "<td> </td>"; } } echo "</tr>"; } echo "</table>"; ?> - og har du et link hvor man kan se det?
08. januar 2006 - 23:07
#10
Jeg har løst det. Jeg fik hjælp af en kollega. Men tak for at i gad kigge på problemet.
09. januar 2006 - 08:38
#11
Hvordan endte løsningen med at se ud?
09. januar 2006 - 09:18
#12
<? $sqlUger = mysql_query ("SELECT * FROM kalender ORDER BY uge ASC") or die (mysql_error()); $arrWeeks=array(); $i=1; while ($objWeek = mysql_fetch_object($sqlUger)) { $arrWeeks[$i]=$objWeek->uge_status; //gemmer status i et array, med ugenr. som key $i++; //inkrementerer i } for($j=1;$j<14;$j++){//for rækkerne (13 styks) ?> <tr> <? for($k=0;$k<4;$k++){ //for kolonnerne (4 styks) $week=$j+(13*$k); //udregner ugenummeret for det givne felt. ?> <td height="19" align="right"><? print $week ?>:</td> <? if($arrWeeks[$week]=='Ledig'){ ?> <td> <a href="kalender_bestil.php?uge=<? print $week ?>"><? print $arrWeeks[$week] ?></a></td> <? }else{ ?> <td> <span class="headline"><? print $arrWeeks[$week] ?></span></td> <? } } ?> </tr> <tr> <td height="1" colspan="8" bgcolor="#FFFFFF"></td> </tr> <? } ?>
09. januar 2006 - 09:55
#13
Det er faktisk præcis den løsning jeg gav dig ;^)
09. januar 2006 - 14:24
#14
ok, det var jeg ikke klar over. Min kollega's virker dog, det gjorde din ikke. Jeg vil gerne give dig nogle points vis du mener du har nogen til gode?
09. januar 2006 - 14:27
#15
Nej, tak det var slet ikke det jeg ville, men ellers takl for tilbudet. :^) Jeg ville bare fortælle at det essentielt var den samme algoritme. Det kan godt være at min ikke fungerede 100 %, men det kunne den sikkert godt komme til – nok bare en lille dum ting der er i vejen. I modsætning til dig og din kollega, så har jeg jo ikke selv haft mulighed for lige at afprøve og debugge den.
09. januar 2006 - 14:34
#16
Nej det er selvfølgelig rigtig nok. Men du skal have tak fordi du gad bruge din tid på mit problem.
09. januar 2006 - 15:52
#17
No prob :^)
Vi tilbyder markedets bedste kurser inden for webudvikling