Php 添加具有相同信息的重复事件(日期为1周后除外)

Php 添加具有相同信息的重复事件(日期为1周后除外),php,mysql,recurring-events,Php,Mysql,Recurring Events,我已经搜索并尝试了各种解决方案,但似乎没有得到这个。我每周都有一件事发生在一周的同一天。我希望能够将它添加到MySQL数据库中,以便在16个不同的星期内输入相同的确切信息,这意味着只有eventDate字段会更改 当前,添加事件的表单有一个标记为“定期”的复选框和一个用于初始事件日期的日期字段。然后,我尝试插入带有输入日期的初始记录,然后循环执行另外15次插入,每次插入的日期设置为1周后,但其余数据与最初输入的一样 我从表单提交中分配了变量,然后根据“定期”字段是否设置为1进行插入。我没有收到错

我已经搜索并尝试了各种解决方案,但似乎没有得到这个。我每周都有一件事发生在一周的同一天。我希望能够将它添加到MySQL数据库中,以便在16个不同的星期内输入相同的确切信息,这意味着只有eventDate字段会更改

当前,添加事件的表单有一个标记为“定期”的复选框和一个用于初始事件日期的日期字段。然后,我尝试插入带有输入日期的初始记录,然后循环执行另外15次插入,每次插入的日期设置为1周后,但其余数据与最初输入的一样

我从表单提交中分配了变量,然后根据“定期”字段是否设置为1进行插入。我没有收到错误,但正在输入日期为0000-00-00的事件。当我删除“重复”测试并简单地直接插入时,它工作得很好

$id=$_POST["eventid"];
$eventHeadingTemp = $_POST["eventHeading"];
$eventHeading = mysql_escape_string($eventHeadingTemp);
$eventTypeId = $_POST["eventTypeId"];
$eventInfoTemp = $_POST["eventInfo"];
$eventInfo = mysql_escape_string($eventInfoTemp);
$eventDate = $_POST["eventDate"];
$recurring = $_POST["recurring"];
$eventStartTime = $_POST["eventStartTime"];
$eventImagesDelete=$_POST["eventImagesDelete"];

if ($id==0) {
    if ($recurring==1) {

    $SQL="INSERT INTO events (eventHeading, eventTypeId, eventInfo, eventDate, recurring, eventStartTime, eventImage, eventThumb) VALUES ('$eventHeading', '$eventTypeId', '$eventInfo', '$eventDate', '$recurring', '$eventStartTime', '$eventImage', '$eventThumb')";

        for ($i=0; $i<16; $i++) {

        $eventDate = strtotime('+1 week' , $eventDate);

        $SQL="INSERT INTO events (eventHeading, eventTypeId, eventInfo, eventDate, recurring, eventStartTime, eventImage, eventThumb) VALUES ('$eventHeading', '$eventTypeId', '$eventInfo', '$eventDate', '$recurring', '$eventStartTime', '$eventImage', '$eventThumb')";
        }
    }       

    else {
    $SQL="INSERT INTO events (eventHeading, eventTypeId, eventInfo, eventDate, recurring, eventStartTime, eventImage, eventThumb) VALUES ('$eventHeading', '$eventTypeId', '$eventInfo', '$eventDate', '$recurring', '$eventStartTime', '$eventImage', '$eventThumb')";
    }
$id=$\u POST[“eventid”];
$eventHeadingTemp=$\u POST[“eventHeading”];
$eventHeading=mysql\u escape\u字符串($eventHeadingTemp);
$eventTypeId=$\u POST[“eventTypeId”];
$eventInfoTemp=$_POST[“eventInfo”];
$eventInfo=mysql\u escape\u字符串($eventInfoTemp);
$eventDate=$_POST[“eventDate”];
$recurtive=$_POST[“recurtive”];
$eventStartTime=$\u POST[“eventStartTime”];
$eventImagesDelete=$\u POST[“eventImagesDelete”];
如果($id==0){
如果($recurtive==1){
$SQL=“在事件(eventHeading、eventTypeId、eventInfo、eventDate、Recurtive、eventStartTime、eventImage、eventThumb)中插入值(“$eventHeading”、“$eventTypeId”、“$eventInfo”、“$eventDate”、“$Recurtive”、“$eventStartTime”、“$eventImage”、“$eventThumb”);

对于($i=0;$i警告:如果你只是在学习PHP,请不要学习过时的
mysql\u query
界面。它很糟糕,在未来的PHP版本中会被删除。像这样的现代替代品。像这样的指南可以帮助解释最佳实践。始终确保你的用户参数是正确的,否则你会有严重的问题。好的,谢谢你的帮助e head对此表示赞同-但这似乎不会改变我面临的问题…什么是
strotime(“+1周”,“$eventDate”)
return?这可能是一个垃圾日期,会破坏您的查询。它返回一个数字字符串-606815。如果没有strotime行,它会根据最初输入的日期字段返回一个正确的日期。如果是文档中建议的UNIX时间格式,那么是在1970年代。您可能需要正确使用该函数,并且然后调用将其格式化以插入数据库。值得注意的是,如果您使用的是自动完成所有这一切的类似程序,则所有这些都不会成为问题。