问题
我有一个php类预订脚本,允许每1到4周重复一次预订课程。
课程持续时间为30分钟或60分钟。
如果在一个时段中预订了新班级,它会检查在所选日期的当天是否存在冲突班级。
此刻的剧本可以找到每周复发的冲突,但是我无法弄清楚如何检查每2周+的复发次数。
一些代码
$datetime = '2015-01-13 09:00:00';
SQL看起来像这样。 (可能不是最理想的)
$sql = "SELECT datetime
FROM classes
WHERE (staff_id = :staff_id AND DAYOFWEEK(datetime) = DAYOFWEEK(:datetime))
AND (TIME(datetime) >= TIME(:time_from) AND TIME(datetime) < TIME(:time_to))
OR (TIME(:datetime_from) BETWEEN TIME(datetime)
AND TIME(ADDTIME(datetime_to, '-0 0:0:1')))";
如果计数是> 0然后它将不允许在全年选择的那个时间/日预订课程。
所需能力
如果在每周二上午9点开始预订每周一次的课程,请注意2015-01-13 09:00:00,我需要能够在交替的几周内使用空缺。目前每个星期二都会阻止。
我创建了一个重复日期数组,并将其与上述SQL的结果进行了比较,但这些结果是发生冲突的日期。
有什么想法吗?