我正在开发一个简单的php购物车网站,该网站连接到一个名为products的数据库,并有表订单,用户,产品。 orders表包含以下字段:
OrderId,product_id,user_id,quantity ...当用户订购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与总和..
答案 0 :(得分:1)
这将根据product_id
获取每个用户的产品总和<强>更新强>
SELECT SUM( orders.Quantity ) , COUNT( orders.order_id ) , orders.user_id
FROM orders join user on (user.`user_id`=orders.`user_id`)
GROUP BY orders.user_id
答案 1 :(得分:0)
您需要添加一个名为OrderItem或OrderRow的表,您可以在其中放置每个订单的产品信息。字段可以是OrderID,ProductID,Quantity,ItemPrice。
在订购时存储您告诉客户的价格是个好主意,否则在将来更改价格时会遇到很多问题。
答案 2 :(得分:0)
你需要修复你的function dashboard(){
$this->db->select("count(`idCall`) as answerCount",False)
->from("call")
->where("idEmployee",20)
->where("C_date",date("Y-m-d 00:00:00", strtotime(2015-04-22)))
->where("C_ansornot",'Not Answer')
->get()->result_array();
$this->db->select("count(`idCall`) as answerCount",False)
->from("call")
->where("idEmployee",20)
->where("C_date",date("Y-m-d 00:00:00", strtotime(2015-04-22)))
->where("C_ansornot",'Rejected')
->get()->result_array();
}
}
- 它不能自动增量。那就是我认为你在问的问题。
<div id="container" style="min-width: 310px; height: 400px;
max-width: 600px; margin: 0 auto"></div>
我已经离开了where子句,因为我不知道你想要什么过滤器。
答案 3 :(得分:0)
order_id
但更好的是,如果您要为订单创建单独的表,其中包含订单信息和用于链接订单和产品的表(id,order_id,product_id,quantity)。
答案 4 :(得分:0)
我已经找到了查询..以下是获取订单数量+数量或产品数量+ user_id的查询...
SELECT user.`user_id`,SUM(quantity) AS Number_Of_Products,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
LEFT JOIN USER
ON Orders.user_id=user.`user_id`
GROUP BY username;
以下是输出
user_id Number_Of_Products NumberOfOrders
1 10 5