如何从查询循环遍历数组以返回总数?

时间:2010-12-10 06:49:42

标签: php mysql loops foreach

我想从数据库中获取总数。这是当前的设置。

我有一个名为total_cost(十进制字段)列的记录很多,我编写了一个select语句来选择所有total_cost并将其放在一个名为$ total_cost的数组中。

现在我正在尝试将所有费用加在一起以获得总和,我尝试用它。

foreach ($total_cost as $cost) :
$cost = $cost + $cost['total_cost'];
endforeach;

echo $cost;

那不起作用......

知道为什么吗?

2 个答案:

答案 0 :(得分:3)

您不需要使用循环,您可以直接从mysql服务器中检索总费用

SELECT sum(total_cost) AS total_cost FROM tbl_name WHERE conditions ...

以上将总结满足条件的字段的total_cost并将其返回,这样您就不必在php中循环。

为什么我建议使用它?假设您有2Mil记录并且您想知道总成本,您当前的设置将要求2Mil成本,将它们保存在内存中并通过它们循环。不是真的有效吗?当你可以直接从mysql获得总和时,你不必在内存中保存一个2Mil的密钥数组。

答案 1 :(得分:2)

当前代码的问题是在每次循环迭代开始时$code被覆盖。要将此运行总计修复为另一个变量:

$result = 0;
foreach ($total_cost as $cost) :
$result += $cost['total_cost'];
endforeach;

echo $result;