显示foreach循环的总和

时间:2014-06-03 14:44:06

标签: php mysql

我有一张这样的表:id | item_name | price

我有一个循环显示底部总计的所有项目。

$total_price = 0;

foreach($items as $item)
{
    echo $item->item_name;
    echo $item->price;

    $total_price += $item->price;
}

echo $total_price;

但是,我需要的是在循环浏览所有项目之前在页面顶部显示$total_price

最好是在页面顶部再次遍历foreach来计算总价,还是应该进行单独的数据库调用,只返回总价?

3 个答案:

答案 0 :(得分:3)

这是一个简单而快速的决定

$total_price = 0;
$print = '';
foreach($items as $item)
{
    $print .= $item->item_name;
    $print .= $item->price;

    $total_price += $item->price;
}

echo $total_price;
echo $print;

如果你可以从SQL库中获得总和,那将是更好的解决方案。在MySQL中使用函数SUM()

示例:

SELECT SUM(price) AS total FROM ...

答案 1 :(得分:0)

这是你永远不应该混合PHP代码和直接输出的原因之一。我建议你研究一下php的模板引擎。

除非您正在编写php-cli,否则请在开始输出之前执行所有操作。这将大大增加代码的灵活性。

Smarty是我最喜欢的温和引擎之一,易于设置且功能强大,但这是我的观点。

答案 2 :(得分:0)

也许你需要像这样使用MySQL查询:

SELECT SUM(price) FROM your_table