如何在php中对输出进行分组?
我正在尝试创建一个时间表。通过选择日期,我将必须按公司显示在该时刻过期的所有产品,以这两个数据库为例: 公司如何在php中对输出进行分组?,php,mysqli,Php,Mysqli,我正在尝试创建一个时间表。通过选择日期,我将必须按公司显示在该时刻过期的所有产品,以这两个数据库为例: 公司DB: +------------+-----------+ | id_company | name | +------------+-----------+ | 1 | Microsoft | +------------+-----------+ | 2 | Apple | +------------+-----------+ | 3
DB
:
+------------+-----------+
| id_company | name |
+------------+-----------+
| 1 | Microsoft |
+------------+-----------+
| 2 | Apple |
+------------+-----------+
| 3 | IBM |
+------------+-----------+
+-------------+----------------+---------------+---------------+
| id_products | id_pro_company | name_products | control_dates |
+-------------+----------------+---------------+---------------+
| 1 | 1 | pc | 2020-10-02 |
+-------------+----------------+---------------+---------------+
| 2 | 2 | tablet | 2020-10-10 |
+-------------+----------------+---------------+---------------+
| 3 | 3 | phone | 2030-10-10 |
+-------------+----------------+---------------+---------------+
产品DB
:
+------------+-----------+
| id_company | name |
+------------+-----------+
| 1 | Microsoft |
+------------+-----------+
| 2 | Apple |
+------------+-----------+
| 3 | IBM |
+------------+-----------+
+-------------+----------------+---------------+---------------+
| id_products | id_pro_company | name_products | control_dates |
+-------------+----------------+---------------+---------------+
| 1 | 1 | pc | 2020-10-02 |
+-------------+----------------+---------------+---------------+
| 2 | 2 | tablet | 2020-10-10 |
+-------------+----------------+---------------+---------------+
| 3 | 3 | phone | 2030-10-10 |
+-------------+----------------+---------------+---------------+
查询:
SELECT * FROM products as p JOIN company as c on c.id_company = p.id_pro_company and p.control_dates LIKE ?
现在我有了所有需要的记录,但是如何在php中对输出进行分组呢。
例如:
正如您在代码中的注释中所看到的,我不明白如何将内部有产品的公司分组
示例输出:
1. Microsoft
- PC
* 1 - pc - 2020-10-02
2. Apple
-tablet
* 2 - tablet - 2020-10-10
使用mysl,您将始终获得一个平面数组(因此数据将被重复),因此可以在同一个数组上进行嵌套foreach:第一个数组将输出供应商,第二个带有if的数组将回显产品类型,第三个数组将回显产品。但这是非常不够的 我会进行三种不同的查询:查找供应商、查找产品类型和查找产品
第三种方法是操纵阵列,将其拆分为每个供应商的不同阵列,但与多个查询相比效率更低IMHO因此,创建一个查询并对其进行foreach,然后创建第二个foreach,并对每个产品进行另一个查询?是的,您循环供应商,并且在其中有对RPO产品的查询。在第二个查询中,您在where子句中传递供应商,以便只获得相关数据。请注意,在供应商查询中,您无论如何都应该加入产品表,以仅获取要显示的供应商,而不是所有供应商。我现在尝试让您知道,谢谢。完成。格拉齐;)