Avatar billede delphiuser Mester
25. december 2008 - 23:27 Der er 2 kommentarer og
1 løsning

Kalender med mysql

Hej eksperter

jeg har her en simpel kalender som jeg gerne vil have til at arbejde sammen med en tabel i min database...

jeg har lavet en tabel hvor jeg har følgende felter...
tabellen hedder ra
id, dato, tid, st, kl, ar

nu er det sådan at jeg gerne vil have min kalender til at hente alt hvad der er af events i denne måned. og markere det med blå.
jeg spørger jer om dette da jeg selv er helt lost i denne del. kan ikke finde ud af hvordan jeg kringler denne.

her er mit kalender script...

cal.php

<?php

    // get this month and this years as an int
    $thismonth = ( int ) date( "m" );
    $thisyear = date( "Y" );
   
    // find out the number of days in the month
    $numdaysinmonth = cal_days_in_month( CAL_GREGORIAN, $thismonth, $thisyear );
   
    // create a calendar object
    $jd = cal_to_jd( CAL_GREGORIAN, date( "m" ),date( 1 ), date( "Y" ) );
   
    // get the start day as an int (0 = Sunday, 1 = Monday, etc)
    $startday = jddayofweek( $jd , 0 );
   
    // get the month as a name
    $monthname = jdmonthname( $jd, 1 )

?>
<table border="0" cellpadding="0" cellspacing="0" width="350" height="200" align="center">
<tr><td colspan="7" align="center" height="20" style="font-size:24px;"><?= $monthname ?></td></tr>
<tr>
<td width="50" height="20" align="center">Søndag</td>
<td width="50" height="20" align="center">Mandag</td>
<td width="50" height="20" align="center">Tirsdag</td>
<td width="50" height="20" align="center">Onsdag</td>
<td width="50" height="20" align="center">Torsdag</td>
<td width="50" height="20" align="center">Fredag</td>
<td width="50" height="20" align="center">Lørdag</td>
</tr>
<tr>
<?php

    // put render empty cells

    $emptycells = 0;

    for( $counter = 0; $counter <  $startday; $counter ++ ) {
   
        echo "\t\t<td align=\"center\">-</td>\n";
        $emptycells ++;
   
    }
   
    // renders the days
   
    $rowcounter = $emptycells;
    $numinrow = 7;
   
    for( $counter = 1; $counter <= $numdaysinmonth; $counter ++ ) {
   
        $rowcounter ++;
       
        echo "\t\t<td align=\"center\">$counter</td>\n";
       
        if( $rowcounter % $numinrow == 0 ) {
       
            echo "\t</tr>\n";
           
            if( $counter < $numdaysinmonth ) {
           
                echo "\t<tr>\n";
           
            }
       
            $rowcounter = 0;
       
        }
   
    }
   
    // clean up
    $numcellsleft = $numinrow - $rowcounter;
   
    if( $numcellsleft != $numinrow ) {
   
        for( $counter = 0; $counter < $numcellsleft; $counter ++ ) {
       
            echo "\t\t<td align=\"center\">-</td>\n";
            $emptycells ++;
       
        }
   
    }

?>

</tr>
</table>

håber i kan hjælpe mig. på forhånd tak for hjælpen...

glædelige bagjuls hilsner

Delphiuser
Avatar billede jakobdo Ekspert
26. december 2008 - 11:02 #1
Jeg ved ikke hvordan det lige skal sættes sammen med din kode, men du kunne jo lave noget ala:

SELECT * FROM events WHERE MONTH(dato) = $maaned AND YEAR(dato) = $aar ORDER BY dato
Så indlæser du alle månedens events i et array.
Det array løber du så igennem samtidig med du bygger din kalender op.
Er der et match, så laver du dagen blå.
Avatar billede delphiuser Mester
28. juli 2010 - 14:11 #2
lukker
Avatar billede jakobdo Ekspert
28. juli 2010 - 15:28 #3
Hvad blev din løsning ?
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