0

我将 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 列的总和,但我只想查看与我的查询匹配的元素的总和。有没有一种简单的方法可以做到这一点?

谢谢。

4

6 回答 6

2
$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;
?>
于 2012-04-16T10:23:25.310 回答
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 变量进行计算

于 2012-04-16T10:22:07.417 回答
1

您只能在 sql 查询中添加该代码,并仅在查询中获取 sum(yourfield)。否则,如果您想列出所有 $row 并汇总所选价格,则

$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>
于 2012-04-16T10:28:29.337 回答
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"];
于 2012-04-16T10:30:04.443 回答
1

我认为您应该为正确的工作使用正确的工具..因为您正在调用MySQL它已经有一个SUM功能

SELECT SUM(salePrice) as total 

这将使工作完成得更快

于 2012-04-16T10:32:32.187 回答
0

最简单的方法是使用 sql 命令。

SELECT SUM(salePrice) as sum

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

于 2012-04-16T10:49:08.517 回答