我有一个我要上传到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."', )") ;
}
}
}
}
?>
答案 0 :(得分:2)
您拥有的代码不会在数据库中输入值,因为您的SQL中存在语法错误。在最后,您在 $ eventplace 之后会有一个额外的逗号。
如果您想要周数,可以使用mktime获取时间戳,然后使用带有“W”标志的date获取周数。
话虽如此,您可能还想重新考虑您的表格。将事件信息存储在一个表中,并将事件的每个事件存储在另一个表中。这可以使您的元信息(名称,描述,位置)分开,并在同一个表中重复5000万次。还有一些其他很好的东西,但是还有一段时间。
和Marc B说的一样,至少使用一个mysql_real_escape_string。如你所知,有人甚至可以无意中粉碎你的数据库。
答案 1 :(得分:0)
事件之后有一个Komma太多了