我正在创建一个可以有重复日期的在线预订系统,例如。
我的主要问题是,一个用户可以创建一个未来5年的一次性预订(不太可能,但可能),我希望能够显示将要发生的冲突。 我知道我可以获得MAX(日期),然后使用PHP创建一个从现在到最远的预订之间的可能日期数组,并使用
WHERE `date` IN ({big array of dates})
但我想知道是否有办法让MySQL为我计算日期。 我的MySQL知识不是初学者,但它仍然非常基础。
感谢。
修改
一次性和重复性事件都只存储为一行。每行都有recurring_type
(1-8)和recurring_day
(1-7)这些都可以为NULL,表示它们是一次性的。
以下是重复类型
的数组array(
1 => 'every_week',
2 => 'every_2_weeks',
3 => 'every_3_weeks',
4 => 'every_4_weeks',
5 => 'first_day_of_month',
6 => 'second_day_of_month',
7 => 'third_day_of_month',
8 => 'forth_day_of_month',
);
答案 0 :(得分:0)
如果我理解正确,有一种更快的方法(我假设,这是你正在寻找的): 如果将日期定义为主键,并执行“INSERT IGNORE”,则可以查询affectedRows。如果为0,则表示存在冲突。
我希望它有所帮助:)