php - 如何在一个查询中更新多行(使用 for 循环)

标签 php mysql for-loop

<分区>

比如我的表上有两条数据:

| ID |名称 |年龄 |


| 1 |史蒂夫 | 25 |
| 2 |鲍勃 | 28 |

当我更新一个值时(例如:将“Bob”更改为“George”),它会更改所有值。这是结果:
| ID |名称 |年龄 |


| 1 |乔治 | 28 |
| 2 |乔治 | 28 |

如何在一个查询中更新多行?为了收集值,我使用这样的 for 循环:

<?php
...
$id_array = $_POST['id'];
$name_array = $_POST['name'];
$age_array = $_POST['age'];

$id = array();
$name = array();
$age = array();

for ($i = 0; $i < count($id_array); $i++) {
//count($id_array) --> if I input 4 fields, count($id_array) = 4)

   $id[] = mysql_real_escape_string($id_array[$i]);
   $name[] = mysql_real_escape_string($name_array[$i]);
   $age[] = mysql_real_escape_string($age_array[$i]);                    
}
mysql_query("UPDATE member SET name = '$name', age = '$age' WHERE id = '$id'");
}
...
?>

你能帮帮我吗?谢谢。

最佳答案

在循环中构造您的查询:

<?php
...
$id_array = $_POST['id'];
$name_array = $_POST['name'];
$age_array = $_POST['age'];

for ($i = 0; $i < count($id_array); $i++) {
//count($id_array) --> if I input 4 fields, count($id_array) = 4)

   $id = mysql_real_escape_string($id_array[$i]);
   $name = mysql_real_escape_string($name_array[$i]);
   $age = mysql_real_escape_string($age_array[$i]);

   $query .= "UPDATE member SET name = '$name', age = '$age' WHERE id = '$id';";
}

mysql_query($query);
}
...
?>

希望对您有所帮助...!

关于php - 如何在一个查询中更新多行(使用 for 循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36637234/

相关文章:

mysql - 如何在Mysql中通过破折号反转字符串

r - 在 R 中使用 `optim()` 求解两个参数?

php - 查询无法正确保存日期

php - 有没有更好的方法来编写报价单?

php - 在 PHP 中检查空值和缺失的查询字符串参数

php - 我怎样才能释放繁忙的 table ?

javascript - 由于某种原因,for 循环中的字符串增量连接忽略 "0"

java - 计算并打印文本文件中每个字母的出现次数

javascript - Facebook 分享显示主服务器 IP 地址而不是域名

php - 在页面的正中央制作下拉菜单