Jeg vil godt have lidt hjælp til at få lavet en oversigt, hvor der er 2 kolonner med uger i, i stedet for den lange smøre nu.
Jeg har siddet og leget lidt med kunne ikke helt løse den.
I skal i sær tage højde for, at antal dag i ugerne kan variere på den første og sidste uge. Men hvis det ser ordenligt ud må I godt snyde lidt her. Altså noget lignede, at lave nogle celler som kun indeholder "." eller en nedtonet dato. Okay det kan jeg vist bare forklare med lidt tegning.
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
En lidt indviklet måde. Jeg har en string indeholden dag og måned, som jeg så hiver ud via substr(). Derefter bruger jeg mktime() på dagen, måneden og date(Y), så jeg får et dato format. Dette har jeg så ændret til dansk formatering, så jeg bruger sttrtime eller hvad et nu hedder til at udskrive den.
Så db'en indeholder pt. kun data fra den 1. dec. til 31. dec, men kan på sigt måske bliver ændret, hvis åbningstiderne udvider til november og/eller januar.
Oki... Men medmindre din kode fylder flere hundrede linier, så kunne du måske paste det? Det er lidt nemmere at komme med et løsningsforslag, hvis man kan afprøve det :)
$i=0; $dage = mysql_query("SELECT * FROM RS_Aabningstider_Jul"); while ($dag = mysql_fetch_array($dage)) { setlocale(LC_TIME, "da_DK.ISO8859-1");//Sætter datoformat til dansk $dagen = substr($dag[dato], 0, 2);//Hiver dagen ud af db $måned = substr($dag[dato], 3, 2);//Hiver måneden ud af db $tiden = mktime(0, 0, 0, $måned, $dagen, date(Y));//Laver en dato ud fra oplysninger $dagNavn = strftime("%A", $tiden);//Henter dagens navn $dato = strftime("%e. %B", $tiden);//Henter datoen som f.eks. 1. december 2004 $uge = strftime("%V", $tiden);//Henter ugenr. ud fra datoen $ugedag = strftime("%w", $tiden);//Henter ugedagens nr f.eks. er søndag = 0 if ($dag[lukket]=="n") {?> <table border="0" width="100%"> <? if ($ugedag == 1 || $i == 0) {//0 er kun til at fange den første uge, hvis den ikke startes af mandag $i++;?> <tr> <td colspan="3"> <table width="100%" border="0" align="center"> <tr> <td width="30%"></td><td align="left" class="BIG" style="text-decoration: underline;">Uge <?=$uge?></td><td width="40%"></td> </tr> </table> </td> </tr> <? }?> <tr> <td colspan='3' align='center' class='STRONG' style='text-decoration: underline;'><?=$dagNavn?> den <?=$dato?></td> </tr> <tr class='norm'> <td align='right'>Kl. <?=$dag[aaben]?></td><td align='center'> - </td><td align='left'>Kl. <?=$dag[luk]?></td> </tr> </table> <? } else {//hvis dagen er lukket $dag==y?> <table border="0" width="100%"> <? if ($ugedag == 1 || $i == 0) {//0 er kun til at fange den første uge, hvis den ikke startes af mandag $i++;?> <tr> <td colspan="3"> <table width="100%" border="0" align="center"> <tr> <td width="30%"></td><td align="left" class="BIG" style="text-decoration: underline;">Uge <?=$uge?></td><td width="40%"></td> </tr> </table> </td> </tr> <? }?> <tr> <td colspan='3' align='center' class='STRONG' style='text-decoration: underline;'><?=$dagNavn?> den <?=$dato?></td> </tr> <tr class='norm'> <td align='center' colspan="3" class="lukket">lukket</td> </tr> </table> <? } }?>
Nu har jeg bikset lidt med det, og fundet frem til det jeg mener er bedste løsning :) Har også simplificeret din kode lidt, håber det er ok.
$i=0;
$dage = mysql_query("SELECT * FROM RS_Aabningstider_Jul");
while ($dag = mysql_fetch_array($dage)) { setlocale(LC_TIME, "da_DK.ISO8859-1");//Sætter datoformat til dansk $dagen = substr($dag[dato], 0, 2);//Hiver dagen ud af db $måned = substr($dag[dato], 3, 2);//Hiver måneden ud af db $tiden = mktime(0, 0, 0, $måned, $dagen, date(Y));//Laver en dato ud fra oplysninger $dagNavn = strftime("%A", $tiden);//Henter dagens navn $dato = strftime("%d. %B", $tiden);//Henter datoen som f.eks. 1. december 2004 $uge = strftime("%U", $tiden);//Henter ugenr. ud fra datoen $ugedag = strftime("%w", $tiden);//Henter ugedagens nr f.eks. er søndag = 0
Hov, havde lige glemt at du ville have "lørdag ud for lørdag" :
<table width="100%" border="0"> <tr> <td> <?
$i=0;
$dage = mysql_query("SELECT * FROM RS_Aabningstider_Jul");
while ($dag = mysql_fetch_array($dage)) { setlocale(LC_TIME, "da_DK.ISO8859-1");//Sætter datoformat til dansk $dagen = substr($dag[dato], 0, 2);//Hiver dagen ud af db $måned = substr($dag[dato], 3, 2);//Hiver måneden ud af db $tiden = mktime(0, 0, 0, $måned, $dagen, date(Y));//Laver en dato ud fra oplysninger $dagNavn = strftime("%A", $tiden);//Henter dagens navn $dato = strftime("%d. %B", $tiden);//Henter datoen som f.eks. 1. december 2004 $uge = strftime("%U", $tiden);//Henter ugenr. ud fra datoen $ugedag = strftime("%w", $tiden);//Henter ugedagens nr f.eks. er søndag = 0
Det holder næsten, dog er der et problem med den første uge, som jeg ikke lige kan se, hvor er. Men når jeg sætte border på kan jeg ser, at den 3. og 4. cellen ikke fylder lige så meget som dem hvor der står noget i. Du kan selv prøve at kigge, adresse er den samme.
Og så har jeg ændret det grundlæggende design, så jeg vil efterfølgende ændre oversigten, til kun at vise 2 uger pr. side, og så lave noget paging.
Hvad mener du med 3. og 4. celle? Tror nok jeg ved hvor fejlen evt. kan være, men den er lidt snusket at rette, men det kan selvf. lade sig gøre. Jeg rettede den med vilje ikke, da du ikke brugte borders før...
Men prøv lige at udpensle det med cellerne for mig, så må jeg se om vi tænker på det samme...
Uge 48. Læg mærke til at første gang jeg skriver test 1 og test 2 er det godt nok, men så, begynder læsset at vælte. Men det må da være fordi du på de andre uger har en tabel til hver uge, og ikke har den i den tilfælde, hvor der ikke skal stå noget i den?
Hehe, jeg har ferie så jeg er her nok et par timer endnu :D
Hvis det evt. er, så tror jeg det nemt kan ligge i den her del: <?if($ugedag == 1 || $i == 0) { if(($i%2) == 0) { echo"</td></tr><tr><td valign=\"top\">"; } elseif(($i%2) == 1) { echo"</td><td valign=\"top\">"; } } ?>
Nu har du sgu tabt mig, jeg kan ikke se, hvor de skulle mangle.
Bare for en sikkerheds skyld, så er det søndag den 5. december kontakt søndag den 12. december, som ikke er på linie med hinanden, vi begge snakker om?
Glem det, jeg har nu selv fundet ud af hvad der manglede.
Jeg skulle simpelthen have denne stump ind <? if ($i<$ugedag) {?> </table><table width="100%" border="0" align="center"> <? } Så lukker den kun tabellen og starter en ny, så længe $i er under ugedagens nr.
<table width="100%" border="0"> <tr> <td> <? $i=0; $dage = mysql_query("SELECT * FROM RS_Aabningstider_Jul"); while ($dag = mysql_fetch_array($dage)) { setlocale(LC_TIME, "da_DK.ISO8859-1");//Sætter datoformat til dansk $dagen = substr($dag[dato], 0, 2);//Hiver dagen ud af db $måned = substr($dag[dato], 3, 2);//Hiver måneden ud af db $tiden = mktime(0, 0, 0, $måned, $dagen, date(Y));//Laver en dato ud fra oplysninger $dagNavn = strftime("%A", $tiden);//Henter dagens navn $dato = strftime("%d. %B", $tiden);//Henter datoen som f.eks. 1. december 2004 $uge = strftime("%U", $tiden);//Henter ugenr. ud fra datoen $ugedag = strftime("%w", $tiden);//Henter ugedagens nr f.eks. er søndag = 0
if($ugedag == 1 || $i == 0) { if(($i%2) == 0) { echo"</td></tr><tr><td valign=\"top\">"; } else if(($i%2) == 1) { echo"</td><td valign=\"top\">"; } } ?> <table border="0" width="100%"> <? if ($ugedag == 1 || $i == 0) {//0 er kun til at fange den første uge, hvis den ikke startes af mandag $i++;?> <tr> <td colspan="3"> <table width="100%" border="0" align="center"> <tr> <td width="20%"></td> <td align="left" class="text3" style="text-decoration: underline;">Uge <?=$uge?></td> <td width="50%"></td> </tr> </table> </td> </tr> <? } if($ugedag != 1 && $i == 1) {//Laver de celler hvor der ikke er noget at fylde ind for($i = 1; $i < $ugedag; $i++) { ?> <tr> <td colspan="3" class="text1" align="center">- - -</td> </tr> <tr> <td colspan="3" class="text1" align="center"> </td> </tr> <? if ($i<$ugedag) {?> </table><table width="100%" border="0" align="center"> <? } } }?> <tr> <td colspan='3' align='center' class='text1' style='text-decoration: underline;' valign="middle"><?=$dagNavn?> den <?=$dato?></td> </tr> <tr> <? if($dag[lukket] == "n") { ?> <td align='right' class='text1'>Kl. <?=$dag[aaben]?></td> <td align='center' class='text1'> - </td> <td align='left' class='text1'>Kl. <?=$dag[luk]?></td> <? } else { ?> <td align='center' colspan="3" class="lukket">lukket</td> <? } ?> </tr> </table> <? } ?> </td> </tr> </table>
Glad for du har løst det, jeg må indrømme at jeg ikke har haft tid til at se på det endnu :)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.