gpt4 book ai didi

PHP MySQL : How to retrieve all images associated to an item id from images table

转载 作者:行者123 更新时间:2023-11-29 17:13:37 25 4
gpt4 key购买 nike

所以我有两张 table 。

项目表:

+---------+-----------+
| item_id | item_name |
+---------+-----------+
| 1 | Item One |
| 2 | Item Two |
+---------+-----------+

图像表:

+---------+----------------------+
| item_id | item_image |
+---------+----------------------+
| 1 | clofr9ohuvex5cxeyrfm |
| 1 | slnorjbqfd2x7ks0marp |
| 1 | oomkjtomvasklx9be4sq |
| 2 | um8donrpeuvfrmqb7qt |
| 2 | lowcvoaijxniiqdj5eoe |
| 2 | qwxfartcsdyusw4lrngi |
+---------+----------------------+

我的 php 代码用于获取项目列表及其关联图像:

$itemsQuery = $db->prepare("
SELECT *
FROM items a,item_images b
WHERE a.item_id = b.item_id
");
$itemsQuery->execute();
$items = $itemsQuery->fetchAll(PDO::FETCH_ASSOC);

var_dump($items);

我得到了 6 个结果,而不是 2 个。

我想要的是显示“项目表”中存在的 2 个项目以及基于 item_id 的“图像表”中的关联图像。

我可以查询“项目表”并循环遍历它以再次查询数据库以获取图像。但我怎样才能在一次数据库调用中做到这一点呢?

最佳答案

您可以使用GROUP_CONCAT让MySQL将第二个表中的所有值分组到一个列中:

SELECT 
a.*, GROUP_CONCAT(b.item_image) AS item_images
FROM
items a,item_images b
WHERE
a.item_id = b.item_id
GROUP BY
a.item_id

结果将是一个名为 item_images 的键,其中包含该 item 的每个 item_image,并用 , 分隔:

um8donrpeuvfrmqb7qt,lowcvoaijxniiqdj5eoe,qwxfartcsdyusw4lrngi

如果您希望将其作为数组,则可以在 PHP 端使用 explode

关于PHP MySQL : How to retrieve all images associated to an item id from images table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51755833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com