php - 加入2个mysql表并生成一个数组

标签 php mysql

条目和图像,并一直在尝试我能找到的所有方法来加入它们以获得以下结果

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/

相关文章:

java - 在 Fragments 中使用 JSON 时,应用程序在 Android 开发中没有响应

mysql - PHPMyAdmin 中的 mysql 查询中出现意外标记

php - mysql 到 php 日期函数

php - setlocale 是否仅限于其脚本实例?

php - 使用 php 集成附加链接

php - 在 wordpress 中自定义搜索

mysql - 显示用户输入的 ASCII-8BIT 字符时出现 "incompatible character encodings: UTF-8 and ASCII-8BIT"错误

php - WP WooCommerce 页面产品数量

javascript - 在 PHP 后端访问 XMLHttpRequests send(data)

mysql - 本地 mysql 服务器和生产 mysql 服务器之间的显着性能差异