条目和图像,并一直在尝试我能找到的所有方法来加入它们以获得以下结果
entries:
entry_id
name
images:
entry_id
image_url
我正在使用 php,希望能够为给定的 entry_id 检索所有关联的 image_url 行,并将它们与条目表中的其他信息组合。
所以我有类似的东西:
entries:
1, Brian
2, Steve
3, Jane
images:
1, images/brian1.jpg
1, images/brian2.jpg
2, images/steve.jpg
3, images/jane_1.jpg
3, images/jane_2.jpg
3, images/jane_3.jpg
并希望得到一个类似的数组
array(3) {
[0]=>
array(3) {
["entry_id"]=>
string(1) "1"
["name"]=>
string(5) "Brian"
["images"]=>
array(2) {
["image_url"]=>
string(17) "images/brian1.jpg"
["image_url"]=>
string(17) "images/brian2.jpg"
}
}
[1]=>
array(3) {
["entry_id"]=>
string(1) "2"
["name"]=>
string(5) "Steve"
["images"]=>
array(1) {
["image_url"]=>
string(16) "images/steve.jpg"
}
}
[2]=>
array(3) {
["entry_id"]=>
string(1) "3"
["name"]=>
string(5) "Jane"
["images"]=>
array(3) {
["image_url"]=>
string(18) "images/jane_1.jpg"
["image_url"]=>
string(18) "images/jane_2.jpg"
["image_url"]=>
string(18) "images/jane_3.jpg"
}
}
}
谢谢!
最佳答案
没有测试这些,我假设你想要这样的东西:
SELECT * FROM entries INNER JOIN images ON images.entry_id = entries.entry_id
然后遍历这些结果:
$entries = array();
while ($row = mysql_fetch_assoc($data))
{
if (!isset($entries[$row['entry_id']]))
{
$row['images'] = array();
$entries[$row['entry_id']] = $row;
}
$entries[$row['entry_id']]['images'][] = $row['image_url'];
}
然后你可以通过这个返回循环:
foreach ($entries as $entry)
{
foreach ($entry['images'] as $image);
// do something interesting
}
这应该可以为您完成,但您可能需要修改一些内容。
关于php - 加入2个mysql表并生成一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079196/