PHP / MySQL:选择具有动态时间跨度的重复数据

时间:2013-09-29 18:05:58

标签: php mysql

我正在尝试选择数据,我的PHP脚本已动态设置日期。这完美无瑕。然而,对于我的生活,我无法绕过如何让它重演。这是我目前的代码:

function getMonthAPI($field){
    $query = "SELECT *,
              CASE `RecurrenceType`
                  WHEN 'DAY' THEN DATE_ADD(`Date`, INTERVAL `RecurrenceInt` DAY)
                  WHEN 'MONTH' THEN DATE_ADD(`Date`, INTERVAL `RecurrenceInt` MONTH)
                  WHEN 'YEAR' THEN DATE_ADD(`Date`, INTERVAL `RecurrenceInt` YEAR) 
              END AS `TargetDate`
              FROM `Tracking`
              JOIN `Employees` ON `Tracking`.EmployeeID = `Employees`.ID
              Join `Companies` ON `Tracking`.CompanyID = `Companies`.ID
              HAVING `TargetDate` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY) AND `Alert` = 0 AND `FieldID` = '$field'";
    $result = mysql_query($query);
    $num = mysql_num_rows($result);

    if($num == 0) return 0;

        return $result;

    }

因此,您可以通过我的代码看到,用户可以键入任何整数并选择日,月或年。然后,此脚本将根据动态字段重新发生事件。再一次,这部分工作正常。我现在唯一的问题很简单。为了继续重复,我必须在每次发生时更改记录中的日期,或者找出一种方法来使用MySQL查询本身。

我不希望效率低下;我不想在我的PHP代码中多次选择数据(因此在我的查询中调用大小写)。这是一个原因,我不会非常偏爱在事件发生后更新每条记录的想法。

有什么建议吗?我知道有很多才华横溢的人会知道,并且之前已经这样做了。

如果重要,每天都会由Cron Job调用。当前代码会在接下来的30天内查看所有内容,并在此基础上发出警报。

0 个答案:

没有答案