【发布时间】:2015-08-25 21:34:09
【问题描述】:
我的表单无法更新任何数据,请帮帮我,它在第 4 行的“array_keys() 期望参数 1 是数组,给定 null”和第 5 行的“为 foreach() 提供的参数无效”上的显示错误在斋月.php。
这里我想显示来自 sql 查询的所有数据并通过另一个查询更新所有数据。
它在我的另一个网页中运行良好,但在这种情况下它无法运行..
我的表格
<form action="ramadan.php" method="POST">
<?
$result = mysqli_query($dbh,"SELECT * FROM ramadan WHERE id IN (1, 2, 3)");
if(!$result) {
die("Database query failed: " . mysqli_error());
}
while($row = mysqli_fetch_assoc($result)) {
$id=$row['id'];
$ramadan=$row['ramadan'];
$date=$row['date'];
$taraweeh=$row['taraweeh'];
echo '
<tr>
<td><input type="text" name="ramadan['.$id.']" class="form-control" value="'.$ramadan.'"></td>
<td><input type="text" name="date['.$id.']" class="form-control" value="'.$date.'"></td>
<td><input type="text" name="taraweeh['.$id.']" class="form-control" value="'.$taraweeh.'"></td>
</tr>
';}
?>
<input type="submit" class="btn btn-success" name="submit" id="submit" value="Submit">
</form>
斋月.php
include("../db.php");
global $dbh;
if(isset($_POST['submit'])){
$ids = array_keys($_POST['name']);
foreach ($ids as $id) {
$ramadan = mysqli_real_escape_string($dbh,$_POST['ramadan'][$id]);
$date = mysqli_real_escape_string($dbh,$_POST['date'][$id]);
$taraweeh = mysqli_real_escape_string($dbh,$_POST['taraweeh'][$id]);
$id = mysqli_real_escape_string($dbh,$id);
// update data in mysql database
$update = mysqli_query($dbh,"UPDATE ramadan SET hl='$hl', ramadan='$ramadan', date='$date', taraweeh='$taraweeh' WHERE id = '$id'");
}
// if successfully updated.
}
【问题讨论】:
-
你没有在任何地方发布
$_POST['name']。 -
看到这是我的一个问题,效果很好:stackoverflow.com/a/29984790/4453049
标签: php