php购物车-按选择分组并获取总数

php购物车-按选择分组并获取总数,php,mysql,Php,Mysql,我的问题有点长 这是我问题的第一张图片: ---下面是我如何进行选择的查询: $costumer_name=$_SESSION['p_user']; $date=date("y-m-d"); $query_8="select * from orders where costumer_name='$costumer_name' && date='$date' order by product_id desc"; $result_8=mysql_q

我的问题有点长

这是我问题的第一张图片:

---下面是我如何进行选择的查询:

$costumer_name=$_SESSION['p_user'];
$date=date("y-m-d");

$query_8="select * from orders
        where costumer_name='$costumer_name' && date='$date'
        order by product_id desc";
$result_8=mysql_query($query_8);
---如您所见,选择表需要一个分组查询,下面是该查询和结果:

$costumer_name=$_SESSION['p_user'];
$date=date("y-m-d");

$query_8="select * from orders
        where costumer_name='$costumer_name' && date='$date'
        group by product_id desc";
$result_8=mysql_query($query_8);

---这是我如何得到总数的:

$query_9="select SUM(totali) as totali from orders where costumer_name='$costumer_name' && date='$date'";
$result_9=mysql_query($query_9);

$row_9=mysql_fetch_array($result_9);

$totali=$row_9['totali'];
---最后一个问题是:

1.如何统计具有相同产品标识(sasia)的订单数量? 2.获得-cmimi和-sasia的第一个总数? 3.得到最后的总数


谢谢

首先,我认为有更好的解决方案,每当有人单击“添加到购物车”按钮时,总是在数据库中插入新行。如果产品已经存在,您应该将数量更新为+1,这样您将只有一行产品,而不是3行。我不知道您的数据库到底是什么样子的,但这里有一个想法,您可以这样做:

CREATE PROCEDURE add_to_cart(IN in_cart_id INT, IN in_product_id...)
BEGIN 
   DECLARE quant INT;

   SELECT quantity
   FROM cart
   WHERE cart_id = in_cart_id
     AND product_id = in_product_id
   INTO quant;

   IF quant IS NULL then
       INSERT INTO cart....
   ELSE
       UPDATE cart
       SET quantity = quantity + 1
       WHERE cart_id = in_cart_id
         AND product_id = in_product_id;
   END IF;
   END$$
我认为这是一个更好的解决方案,但如果你想以你开始的方式做到这一点,那么这里有一个方法:

 SELECT productId, name, price, COUNT(quantity) as quantity, (price *       COUNT(quantity)) as total
 FROM where-ever-you store data
 WHERE expression 
 GROUP BY productId;
这就是你问题的两个答案,对于第三个总数,你需要写单独的SELECT语句

SELECT SUM(price * quantity) as total_sum
FROM where-ever-you-store-data
WHERE expression if needed...