如何创建可重复的事件php / mysql(每周)

时间:2016-10-01 09:31:35

标签: php mysql

我正在尝试创建一个应该每周同时重复的事件。

这就是我现在所拥有的

用户将postString发送到我的php脚本,如下所示:

weekly=true&dateFrom=2016-10-01 14:00&dateTo=2016-10-01 15:00&usrId=1

然后我的带有php脚本的MySQL语句将这些数据插入到MySQL DB中。 这是我的插入功能:

public function newEvent($weekly, $dateFrom, $dateTo, $usrId) {

    $sql = "insert into myTableName set weekly=?, dateFrom=?, dateTo=?, usrId=?";
    $statement = $this->conn->prepare($sql);
    if (!$statement)
        throw new Exception($statement->error);
    $statement->bind_param("ssss", $weekly, $price, $sport, $participants, $latitude, $longitude, $description, $dateFrom, $dateTo, $usrId, $title);
    $returnValue = $statement->execute();
    return $returnValue;
}

一切正常,但我的实际目标是

当用户发送上述示例postString并且 每周为真 时 我希望我的活动每周都能在同一时间重复,我希望能够在未来一周内搜索这个活动。

示例:我的weekly=true&dateFrom=2016-10-01 14:00&dateTo=2016-10-01 15:00&usrId=1是这样的,如果我运行此MySQL语句

SELECT *
    FROM myTableName WHERE dateFrom >= 2016-10-08 13:00 
        AND dateTo <= 2016-10-08 16:00 LIMIT 0 , 30

我想从我的活动中获取数据,该数据在创建时具有时间dateFrom=2016-10-01 14:00&dateTo=2016-10-01 15:00

我的问题是:

有什么方法可以完成我刚才描述的事情?

如果您需要更多详细信息,请告诉我们。 非常感谢你:))

1 个答案:

答案 0 :(得分:2)

这个怎么样:

添加两列:vsDataENodeBFunctionSkip(1),存储从星期一0:00开始的分钟数。

例如,weeklyDateFromweeklyDateTo,您只需将其存储为2016-10-01 13:00,因为 5day + 6h = 126h = 7560min 。然后Sat. 13:007560

如果您想搜索2016-10-01 15:00,请执行以下操作:

7720

你会得到它,所有原始事件数据都不会丢失!

希望这有效!祝你有个美好的一天!