【发布时间】:2016-08-06 20:11:41
【问题描述】:
例如,我的表上有两个数据:
|身份证号 |姓名 |年龄 |
| 1 |史蒂夫 | 25 |
| 2 |鲍勃 | 28 |
当我更新一个值(例如:将“Bob”更改为“George”)时,它会更改所有值。结果如下:
|身份证号 |姓名 |年龄 |
| 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'");
}
...
?>
你能帮帮我吗?谢谢。
【问题讨论】:
-
你可以用CASE,但是你的例子没有意义,史蒂夫是怎么变成乔治的?
-
看看
print_r($_POST);的结果就好了$_POST['id']真的包含多个id吗?