gpt4 book ai didi

php - 显示两个连接表中的数据时如何更改分组?

转载 作者:行者123 更新时间:2023-11-29 20:48:16 26 4
gpt4 key购买 nike

我已经根据客户 ID 值连接了两个表:客户和订单。订单表中有多个具有相同客户 ID 的条目。

当我显示订单表的条目时,每个订单后面都有客户详细信息。相反,我希望客户详细信息显示一次,然后显示具有该客户 ID 的所有订单。

如何使用 PHP 和 MySQL 做到这一点?

我希望输出像这样

Customer1_name 
Item 1 Quantity
Item 2 Quantity

Customer2_name
Item1 Quantity
Item2 Quantity

但是我得到的是

Customer1_name 
item1 quantity
Customer1_name
item2 quantity

如果他订购了 2 件商品

最佳答案

一般来说,像这样:

执行您的查询,首先按客户 ID 排序,然后按订单 ID(或您想要在每个客户部分中对订单进行排序的任何内容)。 ORDER BY customer_id首先非常重要;如果不这样做,此方法将不起作用。

$stmt = $pdo->query('SELECT * FROM customers 
INNER JOIN orders ON customers.id = orders.customer_id ORDER BY customer_id, order_id');

在获取结果时,跟踪客户,当客户发生变化时,输出新客户信息并用新客户替换当前客户。

$customer_id = null;                          // current customer - initialize to null
while ($row = $stmt->fetchObject()) {
if ($row->customer_id != $customer_id) {
// customer is different, so start a new customer section
echo $row->customer_name;
$customer_id = $row->customer_id; // reset the current customer
}
// always output your order information regardless of whether the customer has changed
echo $row->order_info;
}

关于php - 显示两个连接表中的数据时如何更改分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38272880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com