2012-05-17 5 views
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 } ?> 
+0

"데이터베이스 업데이트 문제가 마지막 행입니다." "문제"는 정확히 무엇입니까? 오류가 있습니까? –

+1

yr 루프에서 id가 절대로 변경되지 않기 때문일 수 있습니까? – Andrew

답변

1

귀하의 SQL 문 업데이트 말합니다 .. "zapotrzebowanie_id = $ ID가". 샘플 코드는 $ id의 값을 설정하지 않으며 폼이 값을 제출하지도 않습니다. 해당 폼에 표시된 레코드를 업데이트하려면 폼에 ID를 포함해야합니다. 그렇지 않으면 MySQL은 업데이트 할 레코드를 알지 못하고 해당 명령문이 실행될 때 zapotrzebowanie_id = $ id를 가진 레코드를 계속 업데이트합니다.

관련 문제