Canada4Life
01-06-2005, 02:57 AM
I have a calendar script that I will be using on my site. It displays the calendar for the current month. I have events stored in a mysql database. The dates for the events is currently stored ina unix timestamp. I'm not sure if that will make at I'm trying to do impossible or not. What I would like is for the days that have events in the database to link to another page that will display the events(s) for that day. The problem is I don't know what kind of code is required to do this.
Here's the calendar code:
<table width="80%" align="center" cellpadding="0" cellspacing="1" border="0">
<tr>
<td colspan="7" align="left" valign="middle" class="calheader">
<span class="normal"><b>
<?php echo date("F Y") . "\n"; ?>
</b></span>
</td>
</tr>
<tr>
<td colspan="7" align="left" valign="middle">
<img src="images2/spacer.gif" width="1" height="4" alt="" /></td>
</tr>
<tr>
<td align="center" valign="middle">
<span class="small"><b>
S
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
M
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
T
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
W
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
T
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
F
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
S
</b></span>
</td>
</tr>
<?php
$month = date(n);
$year = date(Y);
$totaldays = 0;
while ( checkdate( $month, $totaldays + 1, $year ) )
$totaldays++;
$offset = date( "w", mktime( 0, 0, 0, $month, $day, $year ) ) + 1;
echo ' <tr>' . "\n";
if ( $offset > 0 )
echo str_repeat( ' <td align="center" valign="middle" class="calendar">
</td>' . "\n", $offset );
for ( $day = 1; $day <= $totaldays; $day++ )
{
echo ' <td align="center" valign="middle" class="calendar">
<span class="small">' . "
$day" . '
</span>
</td>' . "\n";
$offset++;
if ( $offset > 6 )
{
$offset = 0;
echo ' </tr>' . "\n";
if ( $day < $totaldays )
echo ' <tr>' . "\n";
}
}
if ( $offset > 0 )
$offset = 7 - $offset;
if ( $offset > 0 )
echo str_repeat( ' <td align="center" valign="middle" class="calendar">
</td>' . "\n", $offset );
echo ' </tr>
</table>' . "\n";
?>
<br />
And here's the structure of the db table:
CREATE TABLE `events` (
`event_id` int(11) NOT NULL auto_increment,
`event_title` varchar(255) NOT NULL default '',
`event_date` varchar(50) NOT NULL default '',
`event_text` text NOT NULL,
PRIMARY KEY (`entry_id`)
) TYPE=MyISAM AUTO_INCREMENT=22 ;
Here's the calendar code:
<table width="80%" align="center" cellpadding="0" cellspacing="1" border="0">
<tr>
<td colspan="7" align="left" valign="middle" class="calheader">
<span class="normal"><b>
<?php echo date("F Y") . "\n"; ?>
</b></span>
</td>
</tr>
<tr>
<td colspan="7" align="left" valign="middle">
<img src="images2/spacer.gif" width="1" height="4" alt="" /></td>
</tr>
<tr>
<td align="center" valign="middle">
<span class="small"><b>
S
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
M
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
T
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
W
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
T
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
F
</b></span>
</td>
<td align="center" valign="middle">
<span class="small"><b>
S
</b></span>
</td>
</tr>
<?php
$month = date(n);
$year = date(Y);
$totaldays = 0;
while ( checkdate( $month, $totaldays + 1, $year ) )
$totaldays++;
$offset = date( "w", mktime( 0, 0, 0, $month, $day, $year ) ) + 1;
echo ' <tr>' . "\n";
if ( $offset > 0 )
echo str_repeat( ' <td align="center" valign="middle" class="calendar">
</td>' . "\n", $offset );
for ( $day = 1; $day <= $totaldays; $day++ )
{
echo ' <td align="center" valign="middle" class="calendar">
<span class="small">' . "
$day" . '
</span>
</td>' . "\n";
$offset++;
if ( $offset > 6 )
{
$offset = 0;
echo ' </tr>' . "\n";
if ( $day < $totaldays )
echo ' <tr>' . "\n";
}
}
if ( $offset > 0 )
$offset = 7 - $offset;
if ( $offset > 0 )
echo str_repeat( ' <td align="center" valign="middle" class="calendar">
</td>' . "\n", $offset );
echo ' </tr>
</table>' . "\n";
?>
<br />
And here's the structure of the db table:
CREATE TABLE `events` (
`event_id` int(11) NOT NULL auto_increment,
`event_title` varchar(255) NOT NULL default '',
`event_date` varchar(50) NOT NULL default '',
`event_text` text NOT NULL,
PRIMARY KEY (`entry_id`)
) TYPE=MyISAM AUTO_INCREMENT=22 ;