By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,701 Members | 1,955 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,701 IT Pros & Developers. It's quick & easy.

event calendar problem

P: n/a
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>&nbsp</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>&nbsp</td>";
//}

$output .="</tr>";
$output .="</table>";
$output .="</form>";

return $output;

}

?>

</body>
</html>

Jan 30 '07 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Code was quite long to anyone debug for your behalf.

GENERAL HINT #1:

var_dump($_REQUEST);
do that sometimes to check if post&get-variables are received in a way you
thought they are.

GENERAL HINT #2;

concanate sql query parts into one string and print that instead of
excetuting. copy then it from the screen and use phpmyadmin to check what
query really returns or is it valid syntax at all.

Jan 30 '07 #2

P: n/a
Yes, I had checked with $_REQUEST['d'], and it's giving same results
where d does not parse the value of the selected day. Besides, the
mysql syntax is also correct when I tried to input the fixed date, and
it is able to print out the news on the correspond day.

Does it need the proper assignment of d array? i.e. d[], or
d[$counter] ? I've changed 'd' for either case of d[] and
d[$counter], but it is still doesn't work though.

Jan 31 '07 #3

P: n/a

"caine" <th*********@gmail.comkirjoitti
viestissä:11*********************@v33g2000cwv.goog legroups.com...
Yes, I had checked with $_REQUEST['d'], and it's giving same results
where d does not parse the value of the selected day. Besides, the
mysql syntax is also correct when I tried to input the fixed date, and
it is able to print out the news on the correspond day.

Does it need the proper assignment of d array? i.e. d[], or
d[$counter] ? I've changed 'd' for either case of d[] and
d[$counter], but it is still doesn't work though.

Jan 31 '07 #4

P: n/a
Are you going to secobd page trough form (submit button) or trough link?
Is the second script with the problem news.php OR cal_new1.php?

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";
}
Jan 31 '07 #5

P: n/a
er.... actually problem with the linking <a href....>. i'd solved the
problem. juz lacking of concatenation with the variable in the hidden
form in <a hrefstatement, that is "d=". tq so much

Feb 4 '07 #6

P: n/a
I wanted to add current date and shade the day with different color.
However, I've tried and it works when the $_POST['month']) and
$_POST['year'] are empty. I added these:

$currentday = $components['mday'];

if($currentday == $counter)
$rip_currentday = "$year-$month-$currentday 22:36:40";

//construct new row if 7th column is reached
if($firstweekday == 0)
{
//$firstweekday =0;
$output .="</tr><tr>";
echo "skjsksl";

if (in_array($ripdate, $eventday))
{

if (in_array($rip_currentday, $eventday) && $currentday ==
$counter)
{
echo "today";
$output .="<td class=\"today\"><a href=\"viewnews.php?d=$year-
$month-$counter\" target=\"_blank\">$counter</a>";
$output .="<input name=\"d\" type=\"text\" type=\"hidden\" value=
\".$d.\"></td>\n";

}

else
{
echo "2iuwiruo";
$output .="<td class=\"event\"><a href=\"viewnews.php?d=$year-
$month-$counter\" target=\"_blank\">$counter</a>";
$output .="<input name=\"d\" type=\"text\" type=\"hidden\" value=
\".$d.\"></td>\n";
}
}

else
{

if ($currentday == $counter)
{
echo "else_today";
$output .="<td class=\"today\">$counter</td>\n";
}
else
{
echo "qoiwwo";
$output .="<td>$counter</td>\n";
}
}

}

I hope to get current day displayed althought the $_POST['month']) and
$_POST['year'] are "isset". I inserted the $currentday =
$components['mday']; in the isset loop, but it appears to have the
similar number shaded with different color whenever I change to next
month or previous month. Can anybody help?
Feb 8 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.