我正在访问由另一家网络公司创建的数据库,以检索我当前客户的事件信息。我的客户输入事件信息并记录日期是否重复。我正在尝试显示所有重复日期。到目前为止,我已经能够显示所有内容,常规日期以及重复出现的日期。
表格布置如下:
- 活动
- 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 日。