|  | Posted by caine on 01/30/07 14:19 
I have a clickable calendar, which user can select the day that they want to view the news linking to. My calendar has the clickable event
 day, but once the user click it, the day selected could not be parsed
 to the mysql queries retrieval. $d has problem. How do I tackle this
 $d? The code is a bit long....
 
 <html>
 <head>
 <title>Calendar</title>
 <body>
 
 
 <form action="cal_new1.php" method="post">
 
 <h3>Please select month or year:</h3>
 
 <select name="month">
 <option value="1">January</option>
 <option value="2">February</option>
 <option value="3">March</option>
 <option value="4">April</option>
 <option value="5">May</option>
 <option value="6">June</option>
 <option value="7">July</option>
 <option value="8">August</option>
 <option value="9">September</option>
 <option value="10">October</option>
 <option value="11">November</option>
 <option value="12">December</option>
 </select>
 /
 <select name="year">
 <option value="2006">2006</option>
 <option value="2007">2007</option>
 <option value="2008">2008</option>
 <option value="2009">2009</option>
 <option value="2010">2010</option>
 </select>
 <input type="submit" value="Display Calendar" />
 
 <?php
 
 $db = mysql_connect("localhost", "root", "") or die(mysql_error());
 
 mysql_select_db("bulletin", $db) or die(mysql_error());
 
 //generate event calendar
 echo createcal($month, $year);
 
 
 if (isset($_POST['d']))
 {
 echo "kjkljlk";
 $d = $_POST['d'];
 echo "d=".$d;
 }
 
 else
 {
 echo "183439";
 $d = date("Y-n-j");
 echo "d=".$d;
 }
 
 //show news and events
 $show = "SELECT * FROM `bul_data` WHERE `DATE` LIKE '$d 22:36:40'";
 echo "show=".$show;
 
 $showres = mysql_query($show) or die(mysql_error());
 
 if(mysql_num_rows($showres)>0)
 {
 
 while ($showrow = mysql_fetch_assoc($showres))
 {
 $day = $showrow['DATE'];
 $title = $showrow['TITLE'];
 $department = $showrow['DEPARTMENT'];
 $campus = $showrow['CAMPUS'];
 $link = $showrow['LINK'];
 
 echo "<p>$day</p>\n";
 echo "<p>$title</p>\n";
 echo "<p>$department</p>\n";
 echo "<p>$campus</p>\n";
 echo "<p><a href=\"$link\">$link</a></p>\n";
 
 }
 }
 
 else
 {
 echo "<p>No news available</p>";
 }
 
 
 function createcal($month, $year)
 {
 
 $month = "";
 $year = "";
 
 //get year & month from the calendar
 if (isset($_POST['month']) && isset($_POST['year']))
 {
 $month = $_POST['month'];
 echo "post_month=".$month;
 $year = $_POST['year'];
 echo "post_year=".$year;
 
 }
 else
 {
 $components = getdate();
 $month = $components['mon'];
 $year = $components['year'];
 }
 
 
 
 echo "month=".$month;
 
 echo "year=".$year;
 
 $output = "<h1>Bulletins for $month / $year</h1>";
 
 //create event days
 $newsquery = "SELECT `DATE` FROM `bul_data`";
 echo "newsquery=".$newsquery;
 
 $newsres = mysql_query($newsquery) or die(mysql_error());
 
 $eventday = array();
 
 if(mysql_num_rows($newsres)>0)
 {
 
 while ($newsrow = mysql_fetch_assoc($newsres))
 {
 $date = $newsrow['DATE'];
 echo "date=".$date;
 
 $eventday[] = $date;
 echo "eventday=".$eventday;
 }
 }
 
 //create table tag opener and day headers
 $output .="<table border=\"1\">\n";
 
 $output .="<tr>";
 
 $days = array("SUN","MON","TUE","WED","THU","FRI","SAT");
 
 foreach($days as $day)
 {
 //create calendar headers
 $output .="<th><b>$day</th>\n";
 
 }
 
 $output .="</tr>";
 
 //get 1st day of month
 $start = mktime(0,0,0,$month,1,$year);
 echo "start=".$start;
 $thisdate = getdate($start);
 
 $firstweekday = $thisdate['wday'];
 echo "firstweekday=".$firstweekday;
 
 //calculate number of days in the current month
 $maxday = date('t', $start);
 echo "maxday=".$maxday;
 
 //$next_month = getDate(mktime(0, 0, 0, $month + 1, 1, $year));
 //echo "next_month=".$next_month;
 
 
 $output .="<tr>";
 
 //align first week of month
 for($cday = 0; $cday < $firstweekday; $cday++)
 {
 $output .="<td> </td>\n";
 }
 
 
 //display days of remaining weeks
 for($counter = 1; $counter <= $maxday; $counter++)
 {
 $firstweekday %= 7;
 $ripdate = "$year-$month-$counter 22:36:40";
 echo "ripdate=".$ripdate;
 $d = $year."-".$month."-".$counter;
 echo "d=".$d;
 
 //construct new row if 7th column is reached
 if($firstweekday == 0)
 {
 //$firstweekday =0;
 $output .="</tr><tr>";
 echo "skjsksl";
 
 if (in_array($ripdate, $eventday))
 {
 echo "2iuwiruo";
 $output .="<td class=\"post\"><a href=\"news.php?$year-$month-
 $counter\">$counter</a>";
 $output .="<input name=\"d\" type=\"text\" type=\"hidden\" value=
 \".$d.\"></td>\n";
 }
 
 else
 {
 echo "qoiwwo";
 $output .="<td class=\"empty\">$counter</td>\n";
 }
 }
 
 //not yet reach last column, continue to display
 else
 {
 if (in_array($ripdate, $eventday))
 {
 echo "sqpoipo";
 $output .="<td class=\"post\"><a href=\"news.php?$year-$month-
 $counter\">$counter</a>";
 $output .= "<input name=\"d\" type=\"text\" type=\"hidden\" value=
 \".$d.\"></td>\n";
 }
 
 else
 {
 echo "$%%^^&**@";
 $output .="<td class=\"empty\">$counter</td>\n";
 }
 }
 
 
 $firstweekday++;
 echo "counter=".$counter;
 }
 
 //$restday = getdate(mktime(0, 0, 0, $month, $maxday, $year));
 //for ($cday = $restday+1; $cday < 7; $cday++)
 //{
 //	$output .="<td> </td>";
 //}
 
 $output .="</tr>";
 $output .="</table>";
 $output .="</form>";
 
 return $output;
 
 }
 
 ?>
 
 </body>
 </html>
  Navigation: [Reply to this message] |