显示活动
问题描述:
我想问一下,如果我有事件的表在我的数据库,例如显示活动
description | startdt | enddt
event1 | 2010-04-01 10:00:00 | 2010-04-01 13:00:00
event2 | 2010-04-09 14:00:00 | 2010-04-09 18:00:00
event3 | 2010-04-30 11:00:00 | 2010-05-02 16:00:00
我已经创建了一个PHP的日历,我怎么能显示这些上述事件到我的日历,这样它看起来有点像谷歌日历?例如在2010年4月1日,它将在月历上显示“event1”。
谢谢。
答
假设你有已经预先计算用于显示的日历网格$一年$ month变量,你会从数据库中像这样获取数据:
$query = <<<EOF
SELECT DAY(startdt) AS day, description
FROM table
WHERE (YEAR(startdt) = $year) AND (MONTH(startdt) = $month)
EOF;
$stmt = mysql_query($query) or die ('Query error: ' . mysql_error());
$events = array();
while($row = mysql_fetch_assoc($stmt)) {
$events[$row['day']][] = $row['description']; // might have multiple events on one day, so store as an array of events
}
然后同时建立日历,检查$一天是目前$events
阵列和输出的描述在按照自己的喜好:
for ($day = 1; $day <= 31; $day++) {
if(isset($events[$day])) {
... display event descriptions
}
}
当然,如果你有一个跨越多天的事件,那么你就需要修改的东西来处理,但这应该让你开始在最少的单日活动。