PHP数组更新多个Mysql行
我在使用数组时更新多个Mysql行时遇到问题,让我们从以下提交表单开始:PHP数组更新多个Mysql行,php,html,mysql,arrays,foreach,Php,Html,Mysql,Arrays,Foreach,我在使用数组时更新多个Mysql行时遇到问题,让我们从以下提交表单开始: $n = array(); //Supplier Name $s = array(); //Short Name $o = array(); //Shipment No. $id = array(); //Supplier ID <form action="editing_supplier.php" method="post"> <input type="hidden" value="<?p
$n = array(); //Supplier Name
$s = array(); //Short Name
$o = array(); //Shipment No.
$id = array(); //Supplier ID
<form action="editing_supplier.php" method="post">
<input type="hidden" value="<?php echo $row['id'] ?>" name="id[]">
<input type="text" value="<?php echo $row['name']?>" required name="n[]">
<input type="text" value="<?php echo $row['short_name']?>" required name="s[]">
<input type="text" value="<?php echo $row['shipment_no']?>" required name="o[]">
<input type="submit" value="Confirm Editing" >
</form>
当选择要更新的单行时,它实际上是做什么的..它工作得非常好!但是,当进行多项选择以对其进行更新时,会将所有值弄乱。就像将最后一个id、供应商名称、短名称和装运编号复制到所有选定行一样。我认为这是由于foreach($id)中的foreach系列造成的。我会写:
foreach($_POST['id'] as $index=>$id) {
要跟踪记录的索引,请不要执行任何其他foreach操作,而是:
$query = "UPDATE suppliers SET name = '".$_POST['n'][$index]."' where id ='".$id."'";
因此,保持$id值和其他变量之间的链接。@Voitcus如果缩短代码,则有一个for循环函数。
$query = "UPDATE suppliers SET name = '".$_POST['n'][$index]."' where id ='".$id."'";