我已經問了一個關於我的SQL查詢的問題,而且它工作正常,直到我注意到我忘記了一個非常重要的代碼塊,現在我花了大約一個半小時試圖修改我的代碼。原始問題提出了一個很好的方法來內聯兩個表(orders和order_items)。然後我通過SQL查詢做了一個mysql_num_row(),並將它命名爲一天。我忘記了我的order_items表中有一個名爲quantity的單元格。我需要將這一點納入我的數量。我在下面包括我的代碼,並且有關如何輕鬆實現這一點的任何想法將不勝感激。計數而不是行數 - MySQL/PHP
$SQL2ORDERSEARCH = "
SELECT * FROM order_items
INNER JOIN orders
ON orders.id = order_items.ord
WHERE orders.session = '$sessionID'
AND order_items.dish = '$SEARCHITEMS_OBJECT->dish'
AND order_items.size = 'full'";
$ORDERSEARCH = mysql_query($SQL2ORDERSEARCH) or die(mysql_error());
$ORDERSEARCH_NUM_ROWS = mysql_num_rows($ORDERSEARCH);
$FULLTOTAL = $FULLTOTAL + $ORDERSEARCH_NUM_ROWS;
我試着通過計數嘗試不同的路線。所以我修改我的查詢這樣:
$SQL2ORDERSEARCH = "
SELECT COUNT(quantity) FROM order_items
INNER JOIN orders
ON orders.id = order_items.ord
WHERE orders.session = '$sessionID'
AND order_items.dish = '$SEARCHITEMS_OBJECT->dish'
AND order_items.size = 'full'";
我並沒有從技術上有什麼需要,因爲所有我想做的是統計有多少菜是這裏涉及。然後我創建了一個if語句來確定是否有來自該查詢的任何行,然後計算它們的數量。
if($ORDERSEARCH_NUM_ROWS > 0) {
while($ORDERSEARCH_OBJECT = mysql_fetch_object($ORDERSEARCH)) {
$FULLQTY = COUNT($ORDERSEARCH_OBJECT->quantity);
}
}
我得到了不同的結果。有時候,我會在數據表中直接向下1。其他時間(取決於$ FULLQTY + = COUNT($ ORDERSEARCH_OBJECT-> quantity)等任何小的更改;並嘗試這樣做);我得到的結果看起來幾乎像模式一樣,數字增加了5+,並以某種方式加起來接近20+你進入的名單更遠。
我只是尋找一種簡單的方法來獲得order_items中的數量單元的數量,然後將它們顯示在表格中,然後計算總數。我有一切都很好,並且減少了獲取order_items中的數量單元的數量。任何想法,我會非常感激!
爲什麼不使用SUM()? – afuzzyllama
在靜態工作之後,我使用SUM(),但必須在查詢中將其設置爲SELECT SUM(quantity)AS quantityTotal。知道使用SUM()很有幫助,但對每一種其他方式都沒有幫助。在這種情況下,沒有提出任何人的答案。 – lxndr