Avatar billede lsskaarup Nybegynder
18. november 2004 - 00:59 Der er 29 kommentarer og
1 løsning

Kalender oversigt

Kig på denne side http://www.larsskaarup.dk/randerssport/aabningstider_jul.php

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.

F.eks. i år:
  uge x    uge x+1
---------------------
|    .    | mandag  |
|    .    | tirsdag |
|    .    | onsdag  |
|    .    | torsdag |
|    .    | fredag  |
| lørdag  | lørdag  |
| søndag  | søndag  |
---------------------
| uge x+2 | uge x+3 |

osv.
Avatar billede jaw Nybegynder
18. november 2004 - 01:03 #1
Hvordan henter du de uger nu?
Avatar billede lsskaarup Nybegynder
18. november 2004 - 11:13 #2
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.
Avatar billede jaw Nybegynder
18. november 2004 - 11:22 #3
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 :)
Avatar billede lsskaarup Nybegynder
18. november 2004 - 11:35 #4
Det gør det ikke, men jeg er på arbejde og her den ikke lige med mig.
Avatar billede jaw Nybegynder
18. november 2004 - 11:51 #5
Nej, nej... Men du kan jo smide den senere hvis du får lyst...

God arbejdslyst :)
Avatar billede lsskaarup Nybegynder
18. november 2004 - 11:57 #6
Det skal nok gøre for jeg higer efter  hjælp ;-)

Men det har efterfølgende slået mig, at jeg måske selv kan finde en løsning, med de nedtonede celler, men jeg skal nok komme med koden.
Avatar billede lsskaarup Nybegynder
18. november 2004 - 17:39 #7
Okay, så kommer koden.

$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>
                                                            <? }
                                                        }?>
Avatar billede jaw Nybegynder
18. november 2004 - 23:31 #8
Du skulle ikke være vågen nu, vel? :) Kan du så ikke lige smide et eksempel på, hvordan feltet i dato kan se ud?
Avatar billede jaw Nybegynder
19. november 2004 - 01:55 #9
Godmorgen...

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


?>

                    <?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\">";
                        }
                    } ?>
                   
                    <table border="0" width="50%">
                    <? 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'>
                    <? if($dag[lukket] == "n") { ?>
                    <td align='right'>Kl. <?=$dag[aaben]?></td>
                    <td align='center'> - </td>
                    <td align='left'>Kl. <?=$dag[luk]?></td>
                    <? } else { ?>
                    <td align='center' colspan="3" class="lukket">lukket</td>
                    <? } ?>
                </tr>
                </table>
                <? } ?>


Dog skal du lige kigge på mine strftime(), da jeg måtte skifte nogen bogstaver for at få det til at passe...
Avatar billede jaw Nybegynder
19. november 2004 - 01:56 #10
Der mangler da vist egentlig:

</td></tr></table> som aller sidste linie...
Avatar billede jaw Nybegynder
19. november 2004 - 08:55 #11
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


?>

                    <?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\">";
                        }
                    } ?>
                    <table border="0" width="50%">
                    <? 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>
                <? }?>
                <? if($ugedag != 1 && $i == 1) { ?>
                <? for($i = 1; $i < $ugedag; $i++) { ?>
                <tr>
                    <td colspan="3">&nbsp;</td>
                </tr>
                <tr>
                    <td colspan="3">&nbsp;</td>
                </tr>
                <? } } ?>
                <tr>
                    <td colspan='3' align='center' class='STRONG' style='text-decoration: underline;'><?=$dagNavn?> den <?=$dato?></td>
                </tr>
                <tr class='norm'>
                    <? if($dag[lukket] == "n") { ?>
                    <td align='right'>Kl. <?=$dag[aaben]?></td>
                    <td align='center'> - </td>
                    <td align='left'>Kl. <?=$dag[luk]?></td>
                    <? } else { ?>
                    <td align='center' colspan="3" class="lukket">lukket</td>
                    <? } ?>
                </tr>
                </table>
                <? } ?>
                </td></tr></table>
Avatar billede lsskaarup Nybegynder
21. november 2004 - 21:04 #12
Sorry den lange tid unden svar.

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.
Avatar billede jaw Nybegynder
21. november 2004 - 21:09 #13
Troede næsten du havde opgivet det? :)

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...
Avatar billede lsskaarup Nybegynder
21. november 2004 - 23:33 #14
Jeg bruger heller ikke borders, det er kun for at visualisere det. Men selvom jeg fjernede borders, så kan det stadig ses.
Avatar billede jaw Nybegynder
21. november 2004 - 23:39 #15
Jow, jow, men prøv lige at forklare hvor det er...
Avatar billede lsskaarup Nybegynder
21. november 2004 - 23:44 #16
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?
Avatar billede jaw Nybegynder
21. november 2004 - 23:47 #17
Ja, okey. Kan godt se der går noget galt i noget table-ballade. Og tror nok det er det jeg refererede til før.

Lige nu sidder jeg dog midt i et Adminmod/Small-plugin, men jeg vil gerne se på det igen senere :)
Avatar billede lsskaarup Nybegynder
21. november 2004 - 23:48 #18
Fino, jeg roder også videre med det, så ændringer kan jo forkomme. dog ved jeg ikke lige hvor længe jeg blvier ved endnu. gab
Avatar billede jaw Nybegynder
21. november 2004 - 23:49 #19
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\">";
                        }
                    } ?>
Avatar billede jaw Nybegynder
22. november 2004 - 13:05 #20
Du har fået løst det?
Avatar billede jaw Nybegynder
22. november 2004 - 13:07 #21
Jeg fandt ikke lige umiddelbart noget voldsomt, andet end at der mangler </td></tr></table> efter den del...
Avatar billede lsskaarup Nybegynder
22. november 2004 - 14:41 #22
Nej jeg har ikke fået løst det. Er det efter den først if eller den anden if, der mangler afslutning af tabellen?
Avatar billede jaw Nybegynder
22. november 2004 - 14:45 #23
Ohh, nu tror jeg, jeg kan se hvad du mener :) Det var så ikke det jeg regnede med det var... Det må jeg så lige se på!

Men det er helt til sidst det mangler: efter at alle løkker og alt er kørt igennem.
Avatar billede lsskaarup Nybegynder
22. november 2004 - 18:01 #24
Altså alt for kun den éne tabel som styrer den første uge ikke ?
Avatar billede jaw Nybegynder
22. november 2004 - 18:13 #25
Nej, efter alle tabellerne.
Avatar billede lsskaarup Nybegynder
23. november 2004 - 00:08 #26
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?
Avatar billede lsskaarup Nybegynder
24. november 2004 - 23:14 #27
jaw -> har du fundet ud af noget?
Avatar billede lsskaarup Nybegynder
24. november 2004 - 23:31 #28
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.
Avatar billede lsskaarup Nybegynder
24. november 2004 - 23:32 #29
Så den ser altså sådanne ud:

                                                <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">&nbsp;</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>
Avatar billede jaw Nybegynder
25. november 2004 - 00:03 #30
Glad for du har løst det, jeg må indrømme at jeg ikke har haft tid til at se på det endnu :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester