我想从数据库中获取总数。这是当前的设置。
我有一个名为total_cost(十进制字段)列的记录很多,我编写了一个select语句来选择所有total_cost并将其放在一个名为$ total_cost的数组中。
现在我正在尝试将所有费用加在一起以获得总和,我尝试用它。
foreach ($total_cost as $cost) :
$cost = $cost + $cost['total_cost'];
endforeach;
echo $cost;
那不起作用......
知道为什么吗?
答案 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;