我在表中有一个表单,它根据数据库中的记录数动态创建行。表单用于更新记录。它在我为测试创建的单独测试文件中工作,但在我将其与实际文件合并时则不行。
<form role="form" id="edit_form" class="form-inline" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>?action=edit_menu" method="post"></form>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Item 1</th>
<th>Item 2</th>
<th>Item 3</th>
<th>Item 4</th>
<th>Item 5</th>
<th>Item 6</th>
<th>Item 7</th>
<th>Item 8</th>
</tr>
</thead>
<tbody>
<?php
foreach($menu_items as $key => $value){
echo "
<tr>
<td>
<input type='text' name='name".$count."' form='edit_form' value=".$value["name"].">
</td>
<td>
<input type='text' name='price".$count."' form='edit_form' value=".$value["price"].">
</td>
<td>
<select form='edit_form' name='item1".$count."'>
<option>".$value["item1"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item2".$count."'>
<option>".$value["item2"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item3".$count."'>
<option>".$value["item3"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item4".$count."'>
<option>".$value["item4"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item5".$count."'>
<option>".$value["item5"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item6".$count."'>
<option>".$value["item6"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item7".$count."'>
<option>".$value["item7"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item8".$count."'>
<option>".$value["item8"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<input type='hidden' name='id".$count."' form='edit_form' value=".$value["id"].">
<input type='submit' class='btn btn-xs green-haze' name='count".$count."' form='edit_form' value='Edit'>
</td>
</tr>";
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_GET['action'] == 'edit_menu') {
if(isset($_POST['count'.$count.''])){
$update_menu = "UPDATE `menu`
SET `name`= '".$_POST["name".$count]."',`price`='".$_POST["price".$count]."',`item1`='".$_POST["item1".$count]."',`item2`='".$_POST["item2".$count]."',`item3`='".$_POST["item3".$count]."',`item4`='".$_POST["item4".$count]."',`item5`='".$_POST["item5".$count]."',`item6`='".$_POST["item6".$count]."',`item7`='".$_POST["item7".$count]."',`item8`='".$_POST["item8".$count]."'
WHERE `id`='".$_POST["id".$count]."'";
if ($conn->query($update_menu)) {
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
}
}
$count++;
}
?>
</tbody>
</table>
这是表格以及我在其中创建的表格。数据库连接没有问题(所有其他表单都正常工作)。
没有错误。 $ conn-&gt; query()返回true并执行我在if()中放置的任何语句,但它仍然不更新数据库。
如果有帮助,我可以分享其余的脚本。
谢谢