0

我正在尝试使用表单来更新数据库。数据库更新的问题是最后一行。所有行都由最后一行更新。问题出在哪里?谢谢

<?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 } ?>
4

1 回答 1

1

您的 SQL 语句说要更新 ..“WHERE zapotrzebowanie_id = $id”。您的示例代码从不设置 $id 的值,您的表单也不为它提交值。您需要在表单中包含 id 以更新该表单上显示的记录,否则 MySQL 不知道要更新哪条记录,并将继续更新在执行该语句时恰好具有 zapotrzebowanie_id = $id 的记录。

于 2012-05-17T22:19:33.743 回答