【发布时间】:2022-01-18 02:51:36
【问题描述】:
我有 2 个表“products”和“products_images”。我想在同一个查询中加载每个产品及其图像,然后 json_encode 然后将其发送到前端。
products table
+----+----------------+-------+
| id | product_name | price |
+----+----------------+-------+
| 1 | product name 1 | 15 |
+----+----------------+-------+
| 2 | product name 2 | 23.25 |
+----+----------------+-------+
| 3 | product name 3 | 50 |
+----+----------------+-------+
product_images table
+----+------------+-----------------------------------------------------+
| id | product_id | image |
+----+------------+-----------------------------------------------------+
| 1 | 1 | e5j7eof75y6ey6ke97et5g9thec7e5fnhv54eg9t6gh65bf.png |
+----+------------+-----------------------------------------------------+
| 2 | 1 | sefuywe75wjmce5y98nvb7v939ty89e5h45mg5879dghkjh.png |
+----+------------+-----------------------------------------------------+
| 3 | 1 | 7u5f9e6jumw75f69w6jc89fwmykdy0tw78if6575m7489tf.png |
+----+------------+-----------------------------------------------------+
我希望查询返回这个
{
id: 5,
product_name: 'product name 1',
price: 25.23,
images: [
{
id: 1,
image: 'e5j7eof75y6ey6ke97et5g9thec7e5fnhv54eg9t6gh65bf.png'
},
{
id: 2,
image: 'sefuywe75wjmce5y98nvb7v939ty89e5h45mg5879dghkjh.png'
},
]
}
我所做的是在 php 中对每个产品进行循环,然后加载它的图像,但我不认为这是最好的解决方案或最佳性能。
【问题讨论】:
-
您是使用框架还是仅使用 PDO 来查询数据库?
-
@IGP 我只使用 PDO
-
您可以通过执行 2 个单独的查询并操作结果数组来实现它。
-
我实际上是通过加载多个产品然后在每个产品上循环以获取它的 id 然后加载它的图像并将它们合并在一起来做到这一点的。我只想知道有没有更好的方法
-
您可以加载所有图像,然后将它们与产品合并。我在下面发布了一些示例代码