我正在尝试使用表单来更新数据库。数据库更新问题是最后一行。所有行都由最后一行更新。问题出在哪儿? THX
<?php if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$material = $_POST['material'];
$cena = $_POST['cena'];
$sql_material = "UPDATE material_tab SET material=:material, cena=:cena WHERE zapotrzebowanie_id = $id";
$statement_mat = $pdo->prepare($sql_material);
foreach ($material as $key => $value) {
$statement_mat -> bindValue(':material', $material[$key], PDO::PARAM_STR);
$statement_mat -> bindValue(':cena', $cena[$key], PDO::PARAM_STR);
$statement_mat -> execute();
}
$statement_mat -> closeCursor(); } ?>
形式:
<?php foreach ($rows_material as $material) { ?>
<tr>
<td><input type="checkbox" name="chk" /></td>
<td><input type="text" name="material[]" class="big_field required" value="<?php echo $material['material']; ?>" /></td>
<td><input type="text" name="cena[]" class="small_field" value="<?php echo $material['cena']; ?>" /></td>
</tr>
<?php } ?>
答案 0 :(得分:1)
您的SQL语句说要更新..“WHERE zapotrzebowanie_id = $ id”。您的示例代码从不设置$ id的值,您的表单也不会为其提交值。您需要在表单中包含id以更新该表单上显示的记录,否则MySQL不知道要更新哪个记录,并且在执行该语句时将继续更新碰巧具有zapotrzebowanie_id = $ id的记录。