1

前段时间我问过一个关于我的 SQL 查询的问题,它工作得很好,直到我注意到我忘记了代码中一个非常重要的部分,现在我花了大约一个半小时试图修改我的代码。最初的问题询问了一种内部连接两个表(orders 和 order_items)的好方法。然后我在 SQL Query 上做了一个 mysql_num_row() 并称之为一天。我忘记了我的 order_items 表中有一个名为数量的单元格。我需要将其整合到我的计数中。我在下面包含了我的代码,任何关于如何轻松实现它的想法都将不胜感激。

$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 中数量单元格的计数,我一切都很好。任何想法,我将不胜感激!

4

1 回答 1

2

一个简单的选择总和(数量)在这里不起作用吗?

于 2012-05-22T15:59:23.617 回答