2012-04-30 25 views
0

私は完璧に動作するカレンダーを作成しましたが、複数の日に実行されるイベントを挿入する必要があります。カレンダーはAMとPMのイベントを1日間表示しますが、複数の日にイベントを入力すると、イベント開始日と終了日の間の日にイベントが表示されます。私は開始時刻と終了時刻にタイムスタンプを使用しています。PHPのカレンダー複数の日のイベント

$day_start = mktime(0, 0, 0, $cMonth, ($i - $startday + 1), $cYear); 
$day_morning_end = mktime(11, 59, 59, $cMonth, ($i - $startday + 1), $cYear); 
$day_afternoon_start = mktime(12, 0, 0, $cMonth, ($i - $startday + 1), $cYear); 
$day_end = mktime(23, 59, 59, $cMonth, ($i - $startday + 1), $cYear); 

$morn_sql = "SELECT * FROM tbl_events WHERE (start_stamp>='$day_start' AND end_stamp<='$day_morning_end') OR (start_stamp<'$day_start' AND end_stamp>'$day_end')"; 

午後のために別のクエリがあります:ここに私の現在のSQLです。私が言ったように、それは彼らが開始し、終わる日にイベントを表示する以外は正常に動作しますが、それはその間の日にそれを示します。

おかげ

答えて

0

私はテーブル/データを持っていない原因これはテストされていませんが、私はこれが役立つことを願っています。 :)

$day_sql = "SELECT * FROM tbl_events 
     WHERE start_stamp BETWEEN '$day_start' AND '$day_end' 
      AND end_stamp BETWEEN '$day_start' AND '$day_morning_end' 
       OR end_stamp BETWEEN '$day_afternoon_start' AND '$day_end'";    
関連する問題