2010-04-08 96 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 
    } 
} 

當然,如果你有一個跨越多天的事件,那麼你就需要修改的東西來處理,但這應該讓你開始在最少的單日活動。