2012-05-17 48 views
0

我想用表單來更新數據庫。數據庫更新的問題是最後一行。所有行都由最後一行更新。哪裏有問題? 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

這可能是因爲ID在永久循環中永遠不會改變? – Andrew

回答

1

你的SQL語句說進行更新。 「WHERE zapotrzebowanie_id = $ ID」。您的示例代碼從不設置$ id的值,也不會爲您的表單提交值。您需要在表單中包含該id以更新該表單上顯示的記錄,否則MySQL不知道要更新哪條記錄,並且會在該語句執行時繼續更新恰好具有zapotrzebowanie_id = $ id的記錄。