0

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

周

我试图做的这部分代码没有做我想做的事。屏幕上没有显示错误,也没有行插入到数据库中。

<?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."', )") ;
                  }
                }
             } 
          }
?>
4

2 回答 2

2

好吧,您拥有的代码没有将值输入数据库,因为您的 sql 中有语法错误。最后,您在$eventplace之后有一个额外的逗号。

如果你想要周数,你可以使用mktime来获取时间戳,然后使用'W' 标志来获取周数。

话虽如此,您可能还想重新考虑您的表格。将事件信息存储在一个表中,并将每次发生的事件存储在另一个表中。这样可以使您的元信息(名称、描述、位置)分开,并且不会在同一张表中重复 5000 万次。您还可以从中获得一些其他的好处,但还有一次。

就像 Marc B 说的那样,至少使用 mysql_real_escape_string。正如您所拥有的那样,有人甚至可能无意中破坏了您的数据库。

于 2012-09-20T21:55:54.873 回答
0

There is a Komma Too much After eventplace

于 2012-09-20T21:34:55.327 回答