Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和MySQL重复事件_Php_Mysql - Fatal编程技术网

使用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,那么它将显示您的日期是使用日期数据类型存储的,对吗?