亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 php 中使用 foreach 求和值

在 php 中使用 foreach 求和值

PHP
慕哥9229398 2023-04-28 14:38:49
我正在制作一個電子商務網站。我必須在哪里顯示購物車中所有產品的總量。但是當我嘗試獲取所有產品的總量時,它只顯示最后一個產品的價格這是代碼$result = $query->fetchAll(PDO::FETCH_ASSOC);$total = 0; if($result > 0){       foreach($result as $row){         $price = $row['price'];        $total += intval($price);    }因為價格在數據庫中是 varchar,所以我使用 intval() 方法轉換為 int 并 echo $total <td class="pro-subtotal"><span><?php echo $total; ?></span></td>但它顯示列表中最后一行的數量
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

您不需要此代碼。首先你不需要if($result > 0)。你的變量$result是一個數組,而不是一個數字,所以你不能將它與一個數字進行比較。intval如果您在算術上下文中使用結果,則意義不大。將一個變量分配給另一個變量而不對它做任何有用的事情是沒有意義的,所以$price = $row['price'];也要刪除。


然后剩下的是一個帶有算術加法的簡單循環。


$result = $query->fetchAll(PDO::FETCH_ASSOC);

$total = 0; 

foreach($result as $row){

    $total += $row['price'];

}

這不是最明智的想法,因為此類操作應該在 SQL 而不是 PHP 中完成。有什么理由必須用 PHP 來做嗎?如果不是,則簡單地聚合 SQL 中的值。


SELECT SUM(price) AS total FROM salesOrders WHERE saleId = ?

然后在 PDO 中只獲取一個列。


$total = $query->fetchColumn();


查看完整回答
反對 回復 2023-04-28
?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

我認為

if($result > 0){ ... }

應該

if(count($result) > 0){ ... }


查看完整回答
反對 回復 2023-04-28
  • 2 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號