我有两个名为“Accounts”和“Images”的表。
图像将包含每个帐户的多个结果。
如何在单个数组中反射(reflect)与使用 mysql 和 php 的帐户关联的所有图像,所有图像均以逗号分隔?
我不确定要使用哪个连接...
这是我期望的最终结果:
Array
(
[0] => Array
(
[id] => 1
[firstName] => "John"
[lastName] => "Doe"
[images] => "image1.jpg,image2.jpg,image3.jpg"
)
)
这是我目前得到的:
Array
(
[0] => Array
(
[id] => 1
[firstName] => "John"
[lastName] => "Doe"
[filename] => "image1.jpg"
)
)
这是迄今为止我的代码:
$sql = SELECT a.firstName,a.lastName,i.fileName FROM accounts a INNER JOIN images i ON a.id = i.accountID;
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result)){
$accounts[] = $row;
}
print_r($accounts);
如果有比使用上面的代码更好的开始方式,我愿意接受所有建议。
最佳答案
您可以使用单个 SQL 查询和 GROUP_CONCAT
函数来完成所需的输出。
以下命令将查找所有帐户(包含和不包含图像)以及以逗号分隔的图像文件名列表。
如果您只想查找带有图像的帐户,请将 LEFT JOIN
更改为 INNER JOIN
。
SELECT a.id, a.firstName, a.lastName, GROUP_CONCAT(i.fileName SEPARATOR ',') AS images
FROM accounts a
LEFT JOIN images i ON (a.id = i.accountID)
GROUP BY a.id
关于php - 如何将 mysql 连接结果包含到 PHP 多维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44169760/