Jump to content

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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.