I'm building this calendar that is supposed to display "Activity" if that user has booked an activity on that day. When the user clicks on the link to the calendar. Everything works as it should. The problem arises when the user switches months (ie: from May to June) then switches back to the previous month (ie: May). It will not display "Activity" on that month's calendar when the user switches back.
Geez, I hope that makes sense. I've been looking at the coding and I don't see anything wrong with it. Here's my coding, I hope you see something I don't!
<div align="center">
<?PHP
mk_drawCalendar($m,$y);
?></div>
<div align="center">
<?PHP
// Draw the Calendar
function mk_drawCalendar($m,$y)
{
global $CUserName, $PHP_SELF;
if ((!$m) || (!$y))
{
$m = date("m",mktime());
$y = date("Y",mktime());
if ($m==1)
$themonth="jan";
else if ($m==2)
$themonth="feb";
else if ($m==3)
$themonth="mar";
else if ($m==4)
$themonth="apr";
else if ($m==5)
$themonth="may";
else if ($m==6)
$themonth="jun";
else if ($m==7)
$themonth="jul";
else if ($m==8)
$themonth="aug";
else if ($m==9)
$themonth="sept";
else if ($m==10)
$themonth="oct";
else if ($m==11)
$themonth="nov";
else if ($m==12)
$themonth="dec";
}
// get what weekday the first is on /
$tmpd = getdate(mktime(0,0,0,$m,1,$y));
$month = $tmpd["month"];
$firstwday= $tmpd["wday"];
$lastday = mk_getLastDayofMonth($m,$y);
?>
<font size=1>Click on date to see details</font>
<table cellpadding=2 cellspacing=0 border=1>
<tr>
<td colspan=7 bgcolor="#cccc99">
<table cellpadding=0 cellspacing=0 border=0 width="455">
<tr>
<th width="65">
<a href="<?=$PHP_SELF?>?m=<?=(($m-1)<1) ? 12 : $m-1 ?>&y=<?=(($m-1)<1) ? $y-1 : $y ?>"><<</a>
</th>
<th><font size=2><?="$month $y"?></font></th>
<th width="65">
<a href="<?=$PHP_SELF?>?m=<?=(($m+1)>12) ? 1 : $m+1 ?>&y=<?=(($m+1)>12) ? $y+1 : $y ?>">>></a>
</th>
</tr>
</table>
</td>
</tr>
<tr>
<th width=65 class="tcell">Sun</th>
<th width=65 class="tcell">Mon</th>
<th width=65 class="tcell">Tues </th>
<th width=65 class="tcell">Wed</th>
<th width=65 class="tcell">Thur</th>
<th width=65 class="tcell">Fri</th>
<th width=65 class="tcell">Sat</th>
</tr>
<?PHP
$d = 1;
$wday = $firstwday;
$firstweek = true;
//Loop Through to last day
while ( $d <= $lastday)
{
//blanks for first week
if ($firstweek) {
print "<tr>";
for ($i=1; $i<=$firstwday; $i++)
{ print "<th height=65 bgcolor=#CCCCCC><font size=2> </font>
</th>"; }
$firstweek = false;
}
//checks for event
if($numrows>=1)
{
//Event exists
print "<td class='tcell' bgcolor=#CCCCCC valign=\"top\" height=\"65\">
<a href=calendardetails.php?ADay=$d&AMonth=$themonth&AYear=$y target=\"new_window\"><B>$d</b></a>
</td>";
}
else
{
//Event doesn't exist
print "<td class='tcell' bgcolor=#CCCCCC valign=\"top\" height=\"65\">
<a href=calendardetails.php?ADay=$d&AMonth=$themonth&AYear=$y target=\"new_window\"><B>$d</b></a>";
//Print "Activity" if there is an event booked.
$eventrows = 0;
$query = "SELECT * FROM clientactivity WHERE CUserName='$CUserName' AND ADay='$d' AND AMonth='$themonth' AND AYear='$y'";
$result = mysql_query($query);
$eventrows = mysql_num_rows($result);
if($eventrows>=1)
print "<BR>Activity";
print "</td>";
}
$wday++;
$wday = $wday % 7;
$d++;
// Sunday start week with <tr>
if ($wday==0) { print "<th height=65 bgcolor=#ffffff><tr></th>"; }
//blanks for last week
if ($lastweek) {
print "<tr>";
for ($lastday=28; $tlastday<=31; $lastday++)
{
print "<th height=65 bgcolor=#AAAAAA>
</th><font size=2> </font>"; }
$lastweek = false;
}
}
?>
</tr></table>
<font size=1>Click on date to see details</font>
<br>
<?PHP
//end calendar Draw Function
}
//Show the last day of the month
function mk_getLastDayofMonth($mon,$year)
{
for ($tday=28; $tday <= 31; $tday++)
{
$tdate = getdate(mktime(0,0,0,$mon,$tday,$year));
if ($tdate["mon"] != $mon)
{ break; }
}
$tday--;
return $tday;
}
?>