Avatar billede blach Nybegynder
21. november 2003 - 09:53 Der er 16 kommentarer og
1 løsning

Kalender viser ikke alle dage

Jeg har engang fået lavet en kalender her på exp.dk, men der er en fejl i den: Den viser ikke alle dage!
F.eks. viser den kun 29 dage i November og 30 dage i december...

Nogen der gider rette dette?
Avatar billede bigo Nybegynder
21. november 2003 - 10:07 #1
lad se kode. så kan vi kigge på det.
Avatar billede avminarm Juniormester
21. november 2003 - 10:10 #2
kun 30 dage i dec - så misser man jo nytåraften!! - vis straks noget kode
Avatar billede bigo Nybegynder
21. november 2003 - 10:12 #3
eller osse viste mand det.. og begyndte lidt før... hvad man kunne blive stiv.. ;-)
Avatar billede tipsen Nybegynder
21. november 2003 - 10:13 #4
. o O (Hvis man misser nytårsaften kommer man så overhovedet ind i det nye år!?)
Avatar billede avminarm Juniormester
21. november 2003 - 10:14 #5
hmmm - det kan være et led i en eller anden spareplan - færre dage?, det føles sgu sådan en gang imellem, men hvad så er der jo også kortere til den næete 1. = løn (for nogen) ;o)
Avatar billede bigo Nybegynder
21. november 2003 - 10:14 #6
Nope.. you are locked in 2003 forever.. arg..
Avatar billede avminarm Juniormester
21. november 2003 - 10:14 #7
tipsen>> dybt ;o)
Avatar billede bigo Nybegynder
21. november 2003 - 10:20 #8
menhvorvardetvikomfra.. Kode:
Avatar billede blach Nybegynder
21. november 2003 - 10:32 #9
Hehe, ja det er satme ikke noget at spøge med... Koden kommer her:
--cut--
<?php
    # Functions
    function date_info($info, $month, $year) {
        return date($info, mktime(0,0,0,$month,1,$year));
    }

    # DB CONNECT
    open();

    function getBookings($month, $year) {
        $sql = mysql_query("
            SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse
            FROM testkalender
            WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year'
            ORDER BY day ASC
        ") or die(mysql_error());

        $res = array();
        if (!mysql_num_rows($sql)) return $res;

        while ($foo = mysql_fetch_assoc($sql)) {
            if ($foo['days'] == 1) {
                $res[$foo['day']]['title'] .= "<b>".$foo['title']."</b>\n".$foo['beskrivelse']."\n\n";
                $res[$foo['day']]['totalrooms'] = $res[$foo['day']]['totalrooms'] + $foo['rooms'];
            } else {
                $today = $foo['day'];
                for($i=1; $i<=$foo['days']; $i++) {
                    $res[$today]['title'] .= "<b>".$foo['title']."</b> (".$i."/".$foo['days'].")\n".$foo['beskrivelse']."\n\n";
                    $res[$today]['totalrooms'] = $res[$today]['totalrooms'] + $foo['rooms'];
                    $today++;
                }
            }
        }

        return $res;
    }

    # Pre-values
    $year = date('Y');
    $month = date('m');

    # Catch month or year if passed
    if (isset($_GET["month"]) && $_GET["month"] >= 1 && $_GET["month"] <= 12) $month = $_GET["month"];
    if (isset($_GET["year"]) && $_GET["year"] > $year) $year = $_GET["year"];

    # Static date names - language specific
    $MONTHNAME = array("", "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");

    # Month for listing
    $listingmonth = date('m');
    if ($year != date('Y')) $listingmonth = 1;

    # Init months array with days and first day of month
    $MONTHINFO = array();

    # Initialize days in month
    $MONTHINFO["days"] = date_info("t", $month, $year);
    $MONTHINFO["firstday"] = date_info("w", $month, $year);
    $MONTHINFO["weekno"] = date_info("W", $month, $year);

    # Get room assignment
    $ASSIGNMENT = getBookings($month, $year);

    # Set colorclass for td
    $class = "red";
    if ((($MONTHS["firstday"]+$i)%7) == 6) $class = "red";
?>
<div align="center"><?php echo $year; ?>: <?php for ($i=$listingmonth; $i<=12; $i++) { ?> | <a href='index.php?side=kalender&year=<?php echo $year; ?>&month=<?php echo $i; ?>'><?php echo $MONTHNAME[$i]; ?></a> <?php } ?>-&gt; <a href='index.php?site=kalender&year=<?php echo $year+1; ?>&month=1'><?php echo $year+1; ?></a> &gt;-&gt;</div>

<br><br>

<table width="350" border="0" cellspacing="0" cellpadding="0" align="center">
<tr valign="top">
<td colspan="3" class="month"><b><?php echo $MONTHNAME[$month]; ?> <?php echo $year; ?></b></td>
</tr>
<?php for ($i=1; $i<$MONTHINFO["days"]; $i++) { ?>

<tr>
<td witdh="100" valign="top" class="<?php echo $class; ?>"><?php echo $i; ?>.
<?php # Insert week no if week is starting
    if ((($MONTHINFO["firstday"]+$i)%7) == 2) echo "Uge: ".++$MONTHINFO["weekno"];
?>
</td>
<td witdh="250" class="<?php echo $class; ?>">
<?php
    if (isset($ASSIGNMENT[$i])) {
        echo nl2br($ASSIGNMENT[$i]['title'])."<br>";
        echo $ASSIGNMENT[$i]['totalrooms'] . " i alt.";
    }
?>
</td>
</tr>
<?php } ?>
</table>
Avatar billede avminarm Juniormester
21. november 2003 - 11:28 #10
er der et sted man kan se kalenderen virke?
Avatar billede blach Nybegynder
21. november 2003 - 11:43 #11
Avatar billede tipsen Nybegynder
21. november 2003 - 12:53 #12
<?php for ($i=1; $i<=$MONTHINFO["days"]; $i++) { ?>
Avatar billede avminarm Juniormester
21. november 2003 - 13:34 #13
tipsen har smidt et lill = ind, den tror jeg også fikser det
Avatar billede tipsen Nybegynder
21. november 2003 - 14:02 #14
- Hvis det er korrekt er her et svar - og 15 point er rigeligt.
Avatar billede blach Nybegynder
21. november 2003 - 19:18 #15
Yes, det ser langt bedre ud...

Tak for hjælpen - og selvfølgelig er alle pointene dine :]
Avatar billede blach Nybegynder
21. november 2003 - 19:35 #16
Måske du kan hjælpe mig med, hvorfor den aldrig bruger andet end $class = red
Der er jo også denne linie
if ((($MONTHS["firstday"]+$i)%7) == 6) $class = "normal"; //jeg har ændret denne nu...

Hvad skulle den gøre godt for? Og hvorfor bruger den aldrig denne class?
Avatar billede blach Nybegynder
23. november 2003 - 16:59 #17
Tipsen ??? Vil du ikke lige forklare hvad dette skal bruges til?
if ((($MONTHS["firstday"]+$i)%7) == 6) $class = "normal";
og hvorfor det ikke virker?
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