我的方法是它的工作,但它用相同的数据更新所有表。当您更新第1行时,它将更新所有行。
<?php
$result = $db->prepare("SELECT * FROM famcomp WHERE app_id='".$_GET["app_id"]."'");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<td><input type="text" name="app_id[]" value="<?php echo $row['app_id']; ?>" /></td>
<td><input type="text" name="fullname[]" value="<?php echo $row['fullname']; ?>" class="input" /></td>
<td><input type="text" name="fage[]" value="<?php echo $row['fage']; ?>" class="input" /></td>
<td><input type="text" name="frel[]" value="<?php echo $row['frel']; ?>" class="input" /></td>
<td><input type="text" name="fcivil[]" value="<?php echo $row['fcivil']; ?>" class="input" /></td>
<td><input type="text" name="fedu[]" value="<?php echo $row['fedu']; ?>" class="input" /></td>
<td><input type="text" name="foccup[]" value="<?php echo $row['foccup']; ?>" class="input" /></td>
<td><input type="text" name="finco[]" value="<?php echo $row['finco']; ?>" class="input" /></td>
</tr>
<?php
}
?>
这是我的方法:$ N是计算fullname的总行,然后在for循环中使用它,当我回显我的更新时,它确实提供了正确的详细信息。但是当我查询它时,会用相同的数据更新所有行。
$N = count($_POST['fullname']);
for($i=0; $i < $N; $i++) {
mysql_query("UPDATE famcomp set fullname='" . $_POST["fullname"][$i] . "', fage='" . $_POST["fage"][$i] . "', frel='" . $_POST["frel"][$i] . "', fcivil='" . $_POST["fcivil"][$i] . "', fedu='" . $_POST["fedu"][$i] . "', foccup='" . $_POST["foccup"][$i] . "', finco='" . $_POST["finco"][$i] . "' WHERE app_id='" . $_POST["app_id"][$i] . "'");
答案 0 :(得分:-2)
该方法的解决方案:
mysql_query("UPDATE famcomp set app_id ='". $_POST['app_id'][$i]. "', fullname='" . $_POST["fullname"][$i] . "', fage='" . $_POST["fage"][$i] . "', frel='" . $_POST["frel"][$i] . "', fcivil='" . $_POST["fcivil"][$i] . "', fedu='" . $_POST["fedu"][$i] . "', foccup='" . $_POST["foccup"][$i] . "', finco='" . $_POST["finco"][$i] . "' WHERE id ='" . $_POST["id"][$i] . "'");