現在のクライアントのイベント情報を取得するために、別のウェブ会社が作成したデータベースにアクセスしています。私のクライアントは、イベントの情報を入力し、日付が繰り返されるかどうかをメモします。すべての定期的な日付を表示しようとしています。これまでのところ、定期的な日付と定期的な日付のすべてを表示することができました。
テーブルは次のように配置されます。
- イベント
- Events_Recurring
これはイベント テーブルの一部ですBIGGER PICTURE
Events_Recurring テーブルは次のようになります。
クライアントが繰り返しとしてチェックすると、events_recurring テーブルは、イベント ID と、イベントが繰り返される曜日や月などのその他の情報を含む行を作成します。
繰り返し発生する特定の ID の倍数を表示する方法がわかりません。アクセスできる開始日と終了日、およびそれが繰り返される曜日があります。
たとえば、このイベントが毎週木曜日に再発したとします。1 月 1 日に開始し、1 月 31 日に終了することはわかっていましたが、それを実行して、1 月の毎週木曜日の日付で 4 つの異なるイベントを吐き出すことができますか?
これが私が取り組んでいる完全なコードです。これを理解しようとしている間は少し面倒です。底に向かって再発をチェックしています
// Access external database
$events_db = new wpdb(TOP SECRET CREDENTIALS HERE);
$events_db->show_errors();
if ($events_db) :
// Query Events Database
$events = $events_db->get_results(
"
SELECT ID, RequestDateStart, RequestDateEnd, Ministry, RequestTimeStart, EventName, CoordinatorName, EventDescription, Location
FROM gc_events
WHERE PrivateEvent = 0
AND Ministry = 15
AND date(RequestDateStart)>=date(NOW())
ORDER BY RequestDateStart
"
);
// Create the event data that will be displayed
foreach ($events as $event) :
// Store Event ID in a variable
$masterID = $event->ID;
echo '<div class="col-12">';
echo '<strong>ID:</strong> ' . $event->ID . '<br /><strong>Event Name:</strong> ' . $event->EventName . '<br /><strong>Leader:</strong> ' . $event->CoordinatorName . '<br /><strong>Date:</strong> ' . date('l, F j',strtotime($event->RequestDateStart)) . '<br /><strong>Start Time:</strong> ' . date('g:i a',strtotime($event->RequestTimeStart));
// CHECK IF RECURRING
$recurring_events = $events_db->get_results(
"
SELECT gc_event_id, period, day
FROM gc_event_recurring
WHERE gc_event_id = '$masterID'
"
);
foreach ($recurring_events as $recurring_event) :
if ($recurring_event->period === 'week') {
echo '<div class="col-12"><strong>↑ WEEKLY</strong><br />';
echo $recurring_event->day;
echo '</div>';
}
endforeach;
echo '</div>';
endforeach;
endif;
私が今得ている結果(定期的なイベントで)は
イベント: 毎週の祈り
日付: 2013 年 2 月 1 日
私が望む結果は
イベント: 毎週の祈り
日付: 2013 年 2 月 1 日
イベント: 毎週の祈り
日付: 2013 年 2 月 8 日
イベント: 毎週の祈り
日付: 2013 年 2 月 15 日
イベント: 毎週の祈り
日付: 2013 年 2 月 22 日
これは、開始日が 2 月 1 日で、終了日が 2 月 28 日の場合です。