如何使用php插入具有特定间隔的日期

时间:2012-09-20 21:22:10

标签: php mysql calendar

我有一个我要上传到mysql的日历事件列表。其中一些事件每周发生一次,每月一次。此外,我希望能够插入特定的周数以及插入的每一行。

weeks

这部分代码我试图做我想做的事情并没有这样做。屏幕上不显示任何错误,并且没有行插入数据库。

<?php 
    if(isset($_POST['myform'])){

            $day = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
            $month = array("January","February","March","April","May","June","July","August","September","October","November","December");
            $year = array("2011", "2012", "2013", "2014", "2015", "2016"); 

            $startday = $_POST['day'];
            $eventplace = $_POST['eventplace'];
            $eventname = $_POST['eventname'];
            $eventtime = $_POST['eventtime'];

            for($i=0; $i<count($year); $i++){

                for($j=0; $j<count($month); $j++){

                    for($k=$startday; $k<count($day); $k = $k + 7){



                  $query = mysql_query(" INSERT INTO caldemo(day, month, year, eventname, eventtime, eventplace)
                                         VALUES ('".$k."', '".$month[$j]."', '".$year[$i]."', '".$eventname."', '".$eventtime."', '".$eventplace."', )") ;
                  }
                }
             } 
          }
?>

2 个答案:

答案 0 :(得分:2)

您拥有的代码不会在数据库中输入值,因为您的SQL中存在语法错误。在最后,您在 $ eventplace 之后会有一个额外的逗号。

如果您想要周数,可以使用mktime获取时间戳,然后使用带有“W”标志的date获取周数。

话虽如此,您可能还想重新考虑您的表格。将事件信息存储在一个表中,并将事件的每个事件存储在另一个表中。这可以使您的元信息(名称,描述,位置)分开,并在同一个表中重复5000万次。还有一些其他很好的东西,但是还有一段时间。

和Marc B说的一样,至少使用一个mysql_real_escape_string。如你所知,有人甚至可以无意中粉碎你的数据库。

答案 1 :(得分:0)

事件之后有一个Komma太多了