2012-04-16 23 views
0

私は、私のSQLクエリから連想配列に要素を追加し、以下に示すようにそれらを印刷しています。PHPの配列の合計を取得

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列の合計を得ることができますが、私はクエリに一致する要素の合計を見たいだけです。これを行う簡単な方法はありますか?

ありがとうございました。

+2

に一致する要素のためにあなたにsalePriceの合計を与えるだろう。 – heyanshukla

+0

あなたは対処する必要があるお金ですか?もしそうなら、浮動小数点の精度を考慮してください。これは、正確な総和が必要な場合に、このタスクを非常に深刻なものにします。 – hakre

+0

クイックレスポンスの人に感謝します。 –

答えて

0

これを実行することにより、最も簡単な方法は、SQLコマンドを使用することです。

SELECT SUM(salePrice) as sum

次に合計を呼び出すと、あなただけのSQLクエリでそのcoditionを追加し、唯一のクエリで合計(yourfield)を取得することができ、あなたの連想配列

+0

lol彼はすでに彼がsqlコマンドを使用できると言っています。彼が望むのは、別の方法であるため、クエリを再度実行する必要はありません。D –

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> 

計算のために、この$和変数を使用

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; 
?> 
1

あなただけのSQLクエリでそのcoditionを追加し、唯一のクエリで合計(yourfield)を取得することができます。 または他のあなたが(それも速くなる場合があります)すべての$行をリストアップし、あなたは、単にMySQLでこれを行うことができ、選択した

$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> 
1

の価格を合計したい場合。

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"]; 
1

私はあなたが使うべきだと思う。このようなデータ構造を仮定し

あなたはMySQLと呼んでいるので、それはすでにSUM関数を持っています。ン

仕事をずっと速く成し遂げるだろう
SELECT SUM(salePrice) as total