使用PHP和MySQL重复事件
我想使用即将到来的事件 我的桌子使用PHP和MySQL重复事件,php,mysql,Php,Mysql,我想使用即将到来的事件 我的桌子 ID | Name | StartDate | Repeats 1 | Theater| 23.09.2013 | 0 2 | Cinema | 19.09.2013 | 1 3 | Dinner | 22.09.2013 | 2 4 | Theater| 20.09.2013 | 3 5 | Cinema | 19.09.2013 | 4 重复是指: 如果重复为0:则不重复 如果repeat为1:dially 如果重复次数为2:每周 如果重复
ID | Name | StartDate | Repeats
1 | Theater| 23.09.2013 | 0
2 | Cinema | 19.09.2013 | 1
3 | Dinner | 22.09.2013 | 2
4 | Theater| 20.09.2013 | 3
5 | Cinema | 19.09.2013 | 4
重复是指:
如果重复为0:则不重复
如果repeat为1:dially
如果重复次数为2:每周
如果重复次数为3:每月
如果重复次数为4次:每年
我找到了这段sql代码,但我无法生成。我想看下两个事件
SELECT E.Id, E.Name, E.StartDate, E.Repeats, A.ShowDate, DATEDIFF(E.StartDate, A.ShowDate) AS diff
FROM tally AS E, (
SELECT DATE_ADD('2012-12-09 00:00:00',INTERVAL Repeats DAY) as ShowDate
FROM `tally`
WHERE (DATE_ADD('2012-12-09 00:00:00',INTERVAL Repeats DAY)<='2012-12-20 00:00:00')
ORDER BY Id ASC
) A
WHERE MOD(DATEDIFF(E.StartDate, A.ShowDate), E.Repeats)=0
AND A.ShowDate>=E.StartDate
谢谢您的帮助。您需要一个LastRun列,并对照StartDate+repeat检查它。我想要接下来的两个事件。您的语句中的where子句是否会查找2012-12-20之前的日期,而您的数据是在2013年?是的,如果我添加了24.09.2012并选择repeat 4,那么它将显示您的日期是使用日期数据类型存储的,对吗?