我正在尝试从一个表中提取数据,将列与变量进行比较,然后如果它们匹配,则添加它们并更新另一个表上的字段。似乎UPDATE只在while循环中运行一次,并将该值的值放在整个表中该列的每一行中。奇怪的是,当我回应它时,所有的值都是正确的(唯一的)..但只有当我回显...当我用终端查看表时,该列的所有行都是相同的。我已经读过你一次不能使用2个查询......然后再次......我已经读过你可以,如果第一个在循环之外......请帮助......
我想添加每行的field1和field2,并将总数放在总行中。
继承人的代码......
<?php
require("connection.php");
mysql_select_db("database", $connection);
echo "<br />";
$result = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_array($result))
{
$values = ($row['field1'] + $row['field2']);
echo "values = " . $values;
$sql=mysql_query("UPDATE table SET total_val = '$values'");
echo $row['user_name'] . " " . $values;
echo "<br />";
}
?>
这是回声给我的东西
苏珊14
Mary 18
Bob 13
Sam 21
继承数据库
mysql> SELECT total_val FROM table;
+-----------+
| total_val |
+-----------+
| 21 |
| 21 |
| 21 |
| 21 |
+-----------+
ech总数正是我想要的。我只需要将它们放在total_val列中。
答案 0 :(得分:1)
更新while
循环
目前,当迭代结束时while循环达到总数21并且更新表值为21时,它就是这样做的,因此所有行都包含21个。
您的更新查询每次都会更新所有行 将此唯一ID的条件放在此处
$sql=mysql_query("UPDATE table SET total_val = '$values' WHERE id=$row['id']");
答案 1 :(得分:0)
当前查询更新数据库中的所有行。
试试这个:
$sql=mysql_query("UPDATE table SET total_val = '$values' WHERE id=".$row['id']);