php - PHP MySql查询根据订单号返回订单的所有项目
问题描述
我正在尝试创建一个脚本,在 PHP 中显示订单中的所有项目。
每个订单项在 MySql 数据库中使用不同的行,但具有相同的订单 ID,因此一个订单可以在数据库中具有多行,如下所示。
OrderNumber | Item
------------------------
101 | Banana
101 | Apple
101 | Grapes
102 | Apple
103 | Grapes
103 | Banana
这是我到目前为止的代码
$query ="SELECT *,
group_concat(OrderNumber)FROM MyOrders
group by OrderNumber
order by OrderNumber;";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$item = $row["Item"];
$on =$row["OrderNumber"];
echo $on;
echo "<br/>";
echo $item;
echo "<br/>";
}
}
然而,上面的代码似乎工作,但只显示第一个产品
101
Banana
102
Apple
103
Grapes
我试图实现的是
101
Banana
Apple
Grapes
102
Apple
103
Grapes
Banana
解决方案
你group_concat
在错误的列上做错了。您应该对项目进行分组。它还有助于为组分配一个标识符,以便在脚本的 PHP 部分中轻松访问。我还简化了一些代码。
$query ="SELECT OrderNumber, group_concat(Item) as Items
FROM MyOrders
GROUP BY OrderNumber
ORDER BY OrderNumber;";
$result = $conn->query($query);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo $row["OrderNumber"] . '<br>';
echo $row["Items"] . '<br>';
}
}
推荐阅读
- c# - 循环遍历各种枚举的函数
- macos - 以编程方式禁用 NSWindow 捕捉/粘性
- python-3.x - 将 npz 转换为 csv 格式时出现关键错误
- weblogic - 带有 TwelveMonkeys 的 ClassCastExceptions 甚至在 Weblogic 12c 上的隔离应用程序类加载器上
- python - 使用python循环遍历复杂的xml数据以获取特定值
- sql - SQL中没有固定列数的列的连接
- mongodb - 尝试使用 Mongo 查询加入(查找)两个集合,但它给我一个错误
- javascript - Browserify Express App 错误:解析文件意外令牌
- python - 在遇到换行符或逗号时拆分/剥离一组行
- python - 在 tf.while_loop 中使用 tf.concat 会导致 `InvalidArgumentError: ConcatOp : 所有输入张量的排名应该匹配`。但是 Ops 可以单独工作