2010-04-08 74 views
0

我想问一下,如果我有事件的表在我的数据库,例如显示活动

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”。

谢谢。

回答

1

假设你有已经预先计算用于显示的日历网格$一年$ 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 
    } 
} 

当然,如果你有一个跨越多天的事件,那么你就需要修改的东西来处理,但这应该让你开始在最少的单日活动。