Jump to content

Event Calender


jp15

Recommended Posts

Hi, as it stands I can add events to the calendar and view them no problem. What I would like to be able to do is to make it clear once an event has been added by making the date bold or possibly highlight the background with a different colour so the user knows which days already have events scheduled. This may be really simple and I am fairly new to PHP so would appreciate any help,

Thanks a lot: 

Calendar.php:

<?php
// At line 2 of our calendar.php script, add the MySQL connection information:
$mysql = mysql_connect("localhost", "", "");
mysql_select_db("", $mysql) or die(mysql_error());

// Now we need to define "A DAY", which will be used later in the script:
define("ADAY", (60*60*24));

// The rest of the script will stay the same until about line 82

if ((!isset($_POST['month'])) || (!isset($_POST['year']))) {
        $nowArray = getdate();
        $month = $nowArray['mon'];
        $year = $nowArray['year'];
} else {
        $month = $_POST['month'];
        $year = $_POST['year'];
}
$start = mktime(12,0,0,$month,1,$year);
$firstDayArray = getdate($start);
?>
<html>
<head>
<title><?php echo "Calendar: ".$firstDayArray['month']."" . $firstDayArray['year']; ?></title>
</head>
<script type="text/javascript">
function eventWindow(url) {
        event_popupWin = window.open(url, 'event', 'resizable=yes,scrollbars=yes,toolbar=no,width=400,height=400');
        event_popupWin.opener = self;
}
</script>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="month">
<?php
$months = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

for ($x=1; $x<=count($months); $x++){
        echo "<option value=\"$x\"";
        if ($x == $month){
                echo " selected";
        }
        echo ">".$months[$x-1]."</option>";
}
?>
</select>
<select name="year">
<?php
for ($x=1980; $x<=2010; $x++){
        echo "<option";
        if ($x == $year){
                echo " selected";
        }
        echo ">$x</option>";
}
?>
</select>
<input type="submit" name="submit" value="Go!">
</form>
<br />
<?php
$days = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
echo "<table border=\"1\" cellpadding=\"5\"><tr>\n";
foreach ($days as $day) {
        echo "<td style=\"background-color: #38ACEC; text-align: center; width: 14%\">
              <strong>$day</strong></td>\n";
}

for ($count=0; $count < (6*7); $count++) {
        $dayArray = getdate($start);
        if (($count % 7) == 0) {
                if ($dayArray["mon"] != $month) {
                        break;
                } else {
                        echo "</tr><tr>\n";
                }
        }
        if ($count < $firstDayArray["wday"] || $dayArray["mon"] != $month) {
                echo "<td> </td>\n";
        } else {
                $chkEvent_sql = "SELECT event_title FROM calendar_events WHERE month(event_start) = '".$month."' AND dayofmonth(event_start) = '".$dayArray["mday"]."' AND year(event_start) = '".$year."' ORDER BY event_start";
                $chkEvent_res = mysql_query($chkEvent_sql, $mysql) or die(mysql_error($mysql));

                if (mysql_num_rows($chkEvent_res) > 0) {
                        $event_title = "<br/>";
                        while ($ev = mysql_fetch_array($chkEvent_res)) {
                                $event_title .= stripslashes($ev["event_title"])."<br/>";
                        }
                        mysql_free_result($chkEvent_res);
                } else {
                        $event_title = "";
                }

                echo "<td valign=\"top\"><a href=\"javascript:eventWindow('event.php?m=".$month."&d=".$dayArray["mday"]."&y=$year');\">".$dayArray["mday"]."</a><br/>".$event_title."</td>\n";

                unset($event_title);

                $start += ADAY;
        }
}
echo "</tr></table>";
mysql_close($mysql);
?>

Event.php:

<html>
<head>
<title>Show / Add Events</title>
</head>
<body>
<h1>Show / Add Events</h1>
<?php
$mysql = mysql_connect("localhost", "jp15v07", "pompey123");
mysql_select_db("db_jp15v07", $mysql) or die(mysql_error());

// Add our new events
if ($_POST){
        $m = $_POST['m'];
        $d = $_POST['d'];
        $y = $_POST['y'];

        // Formatting for SQL datetime (if this is edited, it will NOT work.)
        $event_date = $y."-".$m."-".$d." ".$_POST["event_time_hh"].":".$_POST["event_time_mm"].":00";

        $insEvent_sql = "INSERT INTO calendar_events (event_title,
                        event_shortdesc, event_start) VALUES('
                        ".$_POST["event_title"]."',
                        '".$_POST["event_shortdesc"]."', '$event_date')";
        $insEvent_res = mysql_query($insEvent_sql, $mysql)
                        or die(mysql_error($mysql));
} else {
        $m = $_GET['m'];
        $d = $_GET['d'];
        $y = $_GET['y'];
}
// Show the events for this day:
$getEvent_sql = "SELECT event_title, event_shortdesc,
                date_format(event_start, '%l:%i %p') as fmt_date FROM
                calendar_events WHERE month(event_start) = '".$m."'
                AND dayofmonth(event_start) = '".$d."' AND
                year(event_start)= '".$y."' ORDER BY event_start";
$getEvent_res = mysql_query($getEvent_sql, $mysql)
                or die(mysql_error($mysql));

if (mysql_num_rows($getEvent_res) > 0){
        $event_txt = "<ul>";
        while($ev = @mysql_fetch_array($getEvent_res)){
                $event_title = stripslashes($ev["event_title"]);
                $event_shortdesc = stripslashes($ev["event_shortdesc"]);
                $fmt_date = $ev["fmt_date"];
                $event_txt .= "<li><strong>".$fmt_date."</strong>:
                              ".$event_title."<br/>".$event_shortdesc."</li>";
        }
        $event_txt .="</ul>";
        mysql_free_result($getEvent_res);
} else {
        $event_txt = "";
}

mysql_close($mysql);

if ($event_txt != ""){
        echo "<p><strong>Today's Events:</strong></p>
        $event_txt
        <hr/>";
}

// Show form for adding the event:

echo "
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
<p><strong>Add Event:</strong><br/>
Complete the form below then press the submit button when you are done.</p>
<p><strong>Event Title:</strong><br/>
<input type=\"text\" name=\"event_title\" size=\"25\" maxlength=\"25\"/></p>
<p><strong>Event Description:</strong<br/>
<input type=\"text\" name=\"event_shortdesc\" size=\"25\" maxlength=\"255\"/></p>
<p><strong>Event Time (hh:mm):</strong><br/>
<select name=\"event_time_hh\">";
for ($x=1; $x<=24; $x++){
        echo "<option value=\"$x\">$x</option>";
}
echo "</select> :
<select name=\"event_time_mm\">
<option value=\"00\">00</option>
<option value=\"15\">15</option>
<option value=\"30\">30</option>
<option value=\"45\">45</option>
</select>
<input type=\"hidden\" name=\"m\" value=\"".$m."\">
<input type=\"hidden\" name=\"d\" value=\"".$d."\">
<input type=\"hidden\" name=\"y\" value=\"".$y."\">
<br/><br/>
<input type=\"submit\" name=\"submit\" value=\"Add Event!\">
</form>";
?>
</body>
</html>

Link to comment
https://forums.phpfreaks.com/topic/192493-event-calender/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.