jp15 Posted February 18, 2010 Share Posted February 18, 2010 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.