簡體   English   中英

PHP數組更新多個Mysql行

[英]PHP array updating multiple Mysql rows

使用數組更新多個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="<?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>

現在,當單擊“提交”時,將直接打開“ editing_supplier.php”頁面-以下代碼如下:

if((isset($_POST['n'])) && (isset($_POST['s'])) && (isset($_POST['o']))){

//Shows up the ID for each Supplier Name
if(is_array($_POST['id'])) {
foreach($_POST['id'] as $id){

//Updates Supplier Name
if(is_array($_POST['n'])) {
foreach($_POST['n'] as $value){
$query = "UPDATE suppliers SET name = '".$value."' where id ='".$id."'";
$result = mysql_query($query);
}
}


//Updates Short_Name
if(is_array($_POST['s'])) {
foreach($_POST['s'] as $value1){
$query = "UPDATE suppliers SET short_name = '".$value1."' where id ='".$id."'";
$result = mysql_query($query);
}
}

//Updates Shipment No.
if(is_array($_POST['o'])) {
foreach($_POST['o'] as $value2){
$query = "UPDATE suppliers SET shipment_no = '".$value2."' where id ='".$id."'";
$result = mysql_query($query);
}
}


//End of for Each id
}
}

當選擇單行進行更新時,實際執行的操作是完美的! 但是,當為了對其進行更新而進行多項選擇時,它會弄亂所有值。好像復制了最后一個ID,供應商名稱,簡稱和發貨編號。 到所有選定的行。

我認為這是由於foreach($ id)中的一系列foreach。 我會寫:

foreach($_POST['id'] as $index=>$id) {

跟蹤記錄的索引,然后不執行其他任何foreach操作,而是:

$query = "UPDATE suppliers SET name = '".$_POST['n'][$index]."' where id ='".$id."'";

因此,您可以保留$ id值與其他變量之間的鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM