获取其他数据库表的多行

时间:2016-06-05 01:36:31

标签: php mysql sql pdo

我试图优化一些数据检索。有几个与成员表相关的数据表。这个多级数据检索还有很多其他例子,但这是最简单的。

要显示我尝试构建的数组的类型,这就是我在PHP中实现它的方式

$memberID = 1;
$memberData = $db->Query('SELECT * FROM members WHERE id='.$memberID)->Fetch();
$memberData['events'] = $db->Query('SELECT * FROM events WHERE participant='.$memberID)->FetchAll();
$memberData['teams'] = $db->Query('SELECT * FROM teams WHERE member='.$memberID)->FetchAll();
$memberData['photos'] = $db->Query('SELECT * FROM photos WHERE member='.$memberID)->FetchAll();
$memberData['videos'] = $db->Query('SELECT * FROM videos WHERE member='.$memberID)->FetchAll();

这会产生如下数组:

Array(
    'username'=>'JohnDoe',
    'email'=>'johndoe@google.com',
    'address'=>'Hollywood, CA',
    'events'=>Array(
        [0]=>Array(
            'id'=>7,
            'prize'=>'$1,000',
            'participant'=>1,
            'starting_date'=>'May 23, 2017'
        ),
        [1]=>Array(
            'id'=>9,
            'prize'=>'$3,000',
            'participant'=>1,
            'starting_date'=>'June 14, 2016'
        )
    ),
    'teams'=>Array(
        [0]=>Array(
            'id'=>2,
            'name'=>'LA Riots',
            'member'=>1
        ),
        [1]=>Array(
            'id'=>5,
            'name'=>'Queen City Kings',
            'member'=>1
        )
    ),
    'photos'=>Array(
        [0]=>Array(
            'id'=>2,
            'src'=>'photo2.png',
            'member'=>1
        ),
        [1]=>Array(
            'id'=>5,
            'src'=>'photo5.png',
            'member'=>1
        )
    ),
    'videos'=>Array(
        [0]=>Array(
            'id'=>2,
            'src'=>'youtu.be/a4J2KL4as',
            'member'=>1
        ),
        [1]=>Array(
            'id'=>5,
            'src'=>'youtu.be/Bg82JL0DSZ',
            'member'=>1
        )
    )
)

我试图找到一种方法,使用可变数量的表动态执行此操作,并再次将所有数据存储在一个多维数组中。

这可以通过查询来实现吗?

0 个答案:

没有答案