Avatar billede floetti Nybegynder
18. august 2005 - 00:37 Der er 2 kommentarer og
1 løsning

Udbyggelse af kalender med mysql

Jeg har bygget lidt videre på php kalenderen fra http://thorsnet.dk

Det jeg gerne vil, er at kunne sætte flere events ind i "events" db'en. Sådan at jeg kan sætte en start og end dato, således at alle de datoer som er inden for start og date bliver farvede. Jeg ved bare ikke hvor og hvordan jeg skal placere "while" sådan at jeg kan have flere events...

Forhåbentlig forstår I hvad jeg mener...

Nedenfor er scriptet:

<?php
$dag=array('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');
$maaned=array('','Januar','Februar','Marts','April','Maj','Juni','Juli', 'August','September','Oktober','November','December');

$dato="&nbsp;";
$aar=date("Y",time());
if($_GET['month']){ $maned = $_GET['month']; }else{ $maned=date("n",time()); }
if($_GET['day']){ $idag= $_GET['day']; }else{ $idag=date("j",time());  }
$m=mktime(0,0,0,$maned,1,$aar);

$month = strftime("%m", $m);
echo "$month";
?>
<p>
<h2><? echo $maaned[$maned]; ?></h2>
<table border="1" cellpadding="3" cellspacing="0" align="center">
<tr>
    <td>M&aacute;n.</td>
    <td>T&yacute;s.</td>
    <td>Mik.</td>
    <td>H&oacute;s.</td>
    <td>Fr&iacute;.</td>
    <td>Ley.</td>
    <td>Sun.</td>
</tr>
<?php

$sql = mysql_query("SELECT * FROM events WHERE lysingid = \"$_GET[lysingid]\"") or die (mysql_error());
if(mysql_num_rows($sql)){
$row = mysql_fetch_array($sql);
$start = strftime("%d", $row['start']); //start dato
$smonth = strftime("%m", $row['start']); //end måned
$end = strftime("%d", $row['end']); //end dato
$emonth = strftime("%m", $row['end']); // end måned

echo "$start/$smonth - $end/$emonth";
}

$b=0;$i=0;
while($b<date("t",$m)){
echo '<tr align="center">';
if (date("w",$m)==0){ $aa=7; }
else{  $aa=0; }
for ($a=1;$a<8;$a++){
if ($a-$aa>=date("w",$m) or $b>0){$b++;$dato=$b;}
if ($b>date("t",$m)){ $dato="&nbsp;"; }
if($setmonth <= "9"){ $setmonth = "0$setmonth"; }else{ $setmonth = "$setmonth"; }
if ($dato >= "$start" && $dato <= "$end" && $setmonth == "$month"){ $farve="#CCCCCC"; }
elseif ($dato == "$end" && "0$setmonth" == "$month"){ $farve="#CCCCCC"; }
else{ $farve=""; }
echo '<td bgcolor="'.$farve.'" width="40" valign="top"><a href="?month='.$maned.'&day='.$dato.'">'.$strong.''.$dato.''.$strongend.'</a></td>';
}
echo '</tr>';
}
?> </table>
Avatar billede expnet Seniormester
18. august 2005 - 10:30 #1
skal vi forstår det sådan at hvis du vælge en start dag eks: 10/09 end dag 15/09

så skal den fave følgende dage: 10,11,12,13,14,15
Avatar billede floetti Nybegynder
18. august 2005 - 12:22 #2
Ja, det er det den gør nu. Jeg vil gerne have at flere events kan sættes ind i db'en. Sådan at f.eks. 10/09 - 15/09 og 20/09 - 25/09 skal være farvede.

Ved bare ikke hvordan og hvor jeg skal placere "while($row=...)"!?
Avatar billede floetti Nybegynder
29. december 2005 - 14:16 #3
lukker
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