Witam. Napisałem prosty kalendarz w PHP, który pełni funkcję wyświetlania na czerwono dni pobranych z bazy danych. Pojawił się problem, kiedy chciałem przerobić kod w ten sposób aby wprowadzone święta chrześcijańskie nie musiały być wprowadzane co rok tylko raz. Efekt jest taki, że kiedy ustawiam następny rok na kalendarzu to pobiera wszystkie rekordy i wyświetla je na czerwono w kalendarzu, a w przypadku obecnego roku ta funkcjonalność nie działa. Pomoże ktoś w rozwikłaniu problemu?
KOD:
<?PHP function rysujKalendarz($dzien, $miesiac, $rok) { require_once("polaczenie.php"); $dniwmiesiacu = date("t", mktime(0,0,0,$miesiac, 1, $rok)); $zapytanie = "SELECT `data` FROM `kalendarz` WHERE ((`data`>=DATE('$rok-$miesiac-$dzien')) OR (co_rok=1)) ORDER BY `data` ASC"; $wynik = mysql_query($zapytanie); $ile_znalezionych = mysql_num_rows($wynik); for ($i=0; $i<$ile_znalezionych; $i++) { $wiersz = mysql_fetch_assoc($wynik); $daty[] = $wiersz['data']; $wartCo_rok[] = $wiersz['co_rok']; } $year = $rok; $monthNum = $miesiac; $daysofmonth = date("t", mktime(0,0,0,$monthNum, 1, $year)); $dayofweek = date("w"); $dayofmonth = date("j"); $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year)); if($dayofweek == 0) $dayofweek = 7; if($firstdayofmonth == 0) $firstdayofmonth = 7; switch($monthNum){ case 1 : $monthName = "STYCZEN"; break; case 2 : $monthName = "LUTY"; break; case 3 : $monthName = "MARZEC"; break; case 4 : $monthName = "KWIECIEN"; break; case 5 : $monthName = "MAJ"; break; case 6 : $monthName = "CZERWIEC"; break; case 7 : $monthName = "LIPIEC"; break; case 8 : $monthName = "SIERPIEN"; break; case 9 : $monthName = "WRZESIEN"; break; case 10 : $monthName = "PAZDZIERNIK"; break; case 11 : $monthName = "LISTOPAD"; break; case 12 : $monthName = "GRUDZIEN"; break; } echo("");
"); echo(" "); echo(""); echo($monthName." ".$year); echo(""); echo(" "); ?> <? $j = $daysofmonth + $firstdayofmonth - 1; $k=0; $q=explode("-", $daty[$k]); $CurrentDay = $q[2]; $CurrentMonth = $q[1]; $CurrentYear = $q[0]; $CurrentCo_rok = $wartCo_rok[$k]; Pn Wt Sr Cz Pt So Nd for($i=0; $i<$j; $i++){
if($i < $firstdayofmonth - 1){
echo("");
continue;
}
if(($i % 7) == 0)
echo(""); if((($i - $firstdayofmonth + 2) == $CurrentDay) && ($CurrentMonth == $monthNum)) {
$color = “#FF0020”;
if($k++ < $ile_znalezionych) {
$q = explode("-", $daty[$k]);
$CurrentDay = $q[2];
$CurrentMonth = $q[1];
$CurrentYear = $q[0];
$CurrentCo_rok = $wartCo_rok[$k];
}
}
else {
if(($i%7)==6)
$color = “#FF0020”;
else
$color = “#00A030”;
if(($i - $firstdayofmonth + 2)<$dzien)
$color = “#336666”;
}echo("<TD align=“center”>");
echo("<span style=“color:$color; font-size: 12px; font-family: Verdana,Helvetica,sans-serif;”>");
echo($i - $firstdayofmonth + 2);
echo("");
}
echo("
}
?>