【发布时间】:2015-07-03 21:48:43
【问题描述】:
我正在开发一个简单的 php 购物车站点,该站点连接到名为 products 的数据库,并具有表 Orders、user、products。订单表具有以下字段:
OrderId、product_id、user_id、数量...当用户订购例如 3 个产品时。数据是从SESSION['cart']插入的下面是查询
$query = "insert into orders (product_id,user_id,Quantity) values ('$key','$id','$value')";
mysql_query($query);
现在的问题是,如果用户订购了多个产品,则会生成三个 orderID,因为他订购了 3 个产品,每个 orderId 都指向该产品。当我使用 select 语句时,它会显示用户的所有订单,但我想对它们进行分组,这样如果有人一次订购超过 1 个产品,列表将显示单个 orderID,但用户订购的所有产品它。下面是来自订单表的数据库表记录图像和我正在使用的选择查询..
OrderId product_id user_id Quantity
1 4 1 1
3 21 1 3
4 19 1 1
5 21 1 3
6 19 1 2
$sql1=mysql_query("SELECT * FROM orders,USER WHERE user.`user_id`=orders.`user_id`");
while($row = mysql_fetch_array($sql1))
{
$sReturn .='
<tr>
<td>' . $row['user_id'] . '</td>
<td>' . $row['OrderId'] . '</td>
<td>' . $row['product_id'] . '</td>
<td>' . $row['Quantity'] . '</td>
</tr>';
}
有人告诉我可以使用什么选择查询 groupby with sum ..
【问题讨论】:
-
你能展示一个你想要的样例输出吗?
-
你不应该使用订单ID作为自动增量......
-
我想显示一个表格,我可以在其中查看用户列表以及 order_id...我在下面提出了一个查询,它给出了用户的 user_id 和 NumberofOrders,我还想要数量总结.. SELECT user.
user_id,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders LEFT JOIN USER ON Orders.user_id=user.user_idGROUP BY username; -
@BabarAli 您无法使用此结构检索订单 ID。
-
车轮需要重新设计,但为什么要改造这个?
标签: php mysql database group-by