获取php数组的总和

时间:2012-04-16 10:17:57

标签: php mysql sum associative-array

我将我的SQL查询中的元素添加到关联数组并打印它们,如下所示;

foreach ($db->query($sql) as $row)
            {
?>      
                <p>
                <?php
                //Print details of each row 
                echo  "Sale Date: " . $row['saleDate'] . "<br />" . 
                      "Sale Price: " . $row['salePrice'] . "<br />" . 
                      "Buyers Email: " . $row['userEmail'] . "<br />";
                 ?> 
                </p>

我希望能够获得与我的SQL查询匹配的元素的salePrice总和。 我知道我可以使用SQL sum命令来获取sql中我整个salePrice列的总和,但我只想查看与我的查询匹配的元素的总和。有一种简单的方法可以做到这一点吗?

感谢。

6 个答案:

答案 0 :(得分:1)

$sum = 0;
foreach ($db->query($sql) as $row)
            {
?>      
                <p>
                <?php
                $sum +=  floatval($row['salePrice']);
                //Print details of each row 
                echo  "Sale Date: " . $row['saleDate'] . "<br />" . 
                      "Sale Price: " . $row['salePrice'] . "<br />" . 
                      "Buyers Email: " . $row['userEmail'] . "<br />";
                 ?> 
                </p>

使用此$ sum变量进行计算

答案 1 :(得分:1)

$summary = 0;
foreach ($db->query($sql) as $row) {
?>      
<p>
<?php
//Print details of each row 
echo  "Sale Date: " . $row['saleDate'] . "<br />" . 
                      "Sale Price: " . $row['salePrice'] . "<br />" . 
                      "Buyers Email: " . $row['userEmail'] . "<br />";
$summary += $row['salePrice'];
?> 
</p>
<?
}
echo 'Summary: '.$summary;
?>

答案 2 :(得分:1)

您只能在sql查询中添加该条件,并且仅在查询中获取sum(yourfield)。 或者如果你想列出所有$行并将所选价格加起来

$sum = 0;
foreach ($db->query($sql) as $row)
        {
?>      
            <p>
            <?php
            if()// your condition here
            {
                $sum +=  floatval($row['salePrice']);
            }
            //Print details of each row 
            echo  "Sale Date: " . $row['saleDate'] . "<br />" . 
                  "Sale Price: " . $row['salePrice'] . "<br />" . 
                  "Buyers Email: " . $row['userEmail'] . "<br />";
             ?> 
            </p>

答案 3 :(得分:1)

您也可以在mysql中完成此操作(甚至可能更快)。

假设这样的数据结构:

CREATE TABLE tbl_sales (
    buyers_email VARCHAR(50), /* probably should make this foreign key of tbl_buyer */
    sale_price DECIMAL(7,2),
    sale_date TIMESTAMP
);

像这样的$ sql查询将执行:

SELECT SUM(sale_price) AS total_sale FROM tbl_sales;

然后在PHP中:

$query = $dbh -> exec ($sql);
$query -> setFetchMode(PDO::FETCH_ASSOC);
$results = $query -> fetchAll();

$total = $results[0]["total_sale"];

答案 4 :(得分:1)

我认为你应该使用正确的工具来做正确的工作..因为你打电话给MySQL它已经有SUM函数

SELECT SUM(salePrice) as total 

这样可以更快地完成工作

答案 5 :(得分:0)

执行此操作的最简单方法是使用sql命令。

SELECT SUM(salePrice) as sum

然后调用sum将为您提供与您的关联数组匹配的元素的salePrice之和