簡體   English   中英

如何使用多個SUM()進行mySQL語句?

[英]How do I make a mySQL statement with more than one SUM()?

當在產品頁面上單擊按鈕時,我的網站將產品標識符添加到會話變量(稱為“ itemarray”的數組)中。 用戶打開購物車時,將執行以下代碼:

<?php
    $cart = implode(',', $_SESSION['itemarray']);
    /*Create connection to DB here. DB connection is called $connection.*/
    $result = $connection->query("SELECT SUM(Price) AS Total_Price, SUM(Tax) AS Total_Tax, SUM(Shipping) AS Total_Shipping FROM STOCK_LIST WHERE Product_ID IN ($cart)");
    while ($rows = $result->fetch_assoc()) {
        /*Output query result into table*/
    }
    /*Terminate the connection to the database*/
    $connection->close();
?>

代碼的第一行通過itemarray,並將每個元素附加到以逗號分隔的列表(稱為$ cart)中。 與數據庫建立連接(由於已經對其進行了測試,因此已刪除其代碼),並提交查詢以詢問$ cart中商品的總價格,稅金和運費。 然后運行while循環,該循環將$ results變量的內容回顯到表中(由於已經對其進行了測試,因此已刪除了該代碼)。

問題是沒有輸出計算出的總數。 implode函數按預期工作,正在建立連接,並且正在創建表(只是沒有查詢的輸出),所以我只能假設查詢是問題所在。

我將implode命令更改為:

$cart = implode('\', \'', $_SESSION['itemarray']);

這會將列表放入以下格式:

1','2

其中1和2均為產品ID。 為了將單引號添加到字符串的開頭和結尾,然后添加了:

$cart = "'" . $cart . "'";

添加第二行代碼會將$ cart的內容更改為:

'1'。 '2'

現在可以在我的SQL語句中使用它。

我強烈建議您使用綁定參數,因為它將使您的網站免受SQL注入攻擊(我認為這對您的商店站點至關重要)。 嘗試采用此問題的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM