我在index.php页面上有一些日期输入框:
<label>Project Milestone Dates:</label>
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date1);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date2);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date3);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date4);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date5);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date6);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date7);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date8);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date8);?>">
<input type="date" name="date[]" value="<?php echo htmlspecialchars($date10);?>">
当按下提交按钮时,我们转到另一个页面,该页面运行几个sql语句,将各种数据插入到几个表中。一切都插入第一个表,没有问题。我也可以做一个foreach()循环来显示数组的值,以便进行测试。第二个插入不正常,输入pId的值,但是没有输入日期数组,在DB中显示为0000-00-00。如何将数组中的每个日期插入到日期表中,并以pId作为PK?
这是插入的SQL:
$dates = $_GET['date'];
$sql2 = "INSERT INTO datetable (pId, date1)
VALUES ('$pId', '$dates')";
$conn->exec($sql2);
答案 0 :(得分:0)
如果要插入不同的行,请使用foreach循环,
$dates = $_GET['date'];
foreach($dates as $d){
$sql2 = "INSERT INTO datetable (pId, date1)
VALUES ('$pId', '$d')";
$conn->exec($sql2);
}
如果你想把它放在同一行,
foreach($dates as $d){
$dat.=$d.'whatever you want';
}
$d=rtrim($dat,'whatever you want');//it will remove unwanted (whatever you want)
$sql2 = "INSERT INTO datetable (pId, date1)
VALUES ('$pId', '$d')";
$conn->exec($sql2);