首页 > 解决方案 > 如何在不创建新表或 th 的情况下获取 1 个表中的所有产品名称

问题描述

我只想为产品名称和数量制作一个表格,但是每次我添加新的交货时,它都会创建一个表格,这是我的屏幕截图,希望你们能帮助我

这是我的问题

我希望它是这样的

这是我的表和数据库架构

这里代码->>> 1 形式ORDER.PHP
这里代码->>> 2 形式ORDER.PHP

Here Code->>> 1 fetch ORDER_FETCH.PHP
Here Code->>> 2 fetch ORDER_FETCH.PHP

请大家帮帮我,谢谢。

标签: phpmysqli

解决方案


在您的查询中使用GROUP_CONCAT()以获取每个订单的所有材料。

SELECT ..., GROUP_CONCAT(material, '#', quantity) AS materials
FROM ...
GROUP BY inventory_order_id

然后,当您处理该行时,您可以将其分解并将材料和相应的属性放入两个数组中。最后,您可以将这些数组中的每一个加入<br>到表格单元格中的不同行中。

$materials = array();
$quantities = array();
foreach (explode(',', $row['materials'] as $material) {
    list ($name, $quantity) = explode('#'. $material);
    $materials[] = $name;
    $quantities[] = $quantity;
}
$material_html = implode('<br>', $materials;
$quantity_html = implode('<br>', $quantities;

推荐阅读