RDBMS:MySQL
我正在设计在线商店,在显示类别页面的产品时需要一些帮助。假设有100个产品,每个产品有1-3个图像。
我需要显示所有产品,但每个产品还需要显示多张图片。 我找不到正确显示方法的麻烦。
数据库架构:
我可以将数据作为数组检索并循环遍历它但是如果我将所有图像连接到表中,我将会检索到每个中包含不同图像的重复行。我无法理解在查看所有产品时如何为每件产品显示多张图片。
如果您希望我进一步详细说明,请与我们联系。 提前谢谢!
答案 0 :(得分:1)
编写两个单独的查询以从数据库中获取数据: -
如果您需要进一步的帮助,请与我们联系。谢谢!
答案 1 :(得分:0)
您可以使用group_concat()
Mysql函数一次性获取所有图像,而无需复制记录。下面的例子显示了相同的内容。
select p.product_id, p.product_name, group_concat(pi.image_path)
from procuct p join product_images pi on p.product_id = pi.product_id
group by p.product_id, p.product_name
这将为您提供所有路径以逗号分隔的列表以及每个产品记录。
答案 2 :(得分:0)
使用此查询:
select products.*,GROUP_CONCAT(image_path)
form products
LEFT JOIN product_images on products.product_id = product_images.product_id
GROUP BY product_images.product_id
您将获得带有逗号分隔图像的产品结果 然后在PHP中展开这些逗号分隔的图像并显示它。