【发布时间】:2017-08-04 18:47:58
【问题描述】:
我目前正在使用以下 PHP 代码:
$pages = $Database->query("SELECT page_id FROM pages WHERE page_parent = '0'");
$pages = $pages->fetchAll(PDO::FETCH_ASSOC);
foreach ($pages as $page_key => $page) {
$pages[$page_key]['page_children'] = $Database->prepare("SELECT page_id FROM pages WHERE page_parent = :id");
$pages[$page_key]['page_children']->execute(array(
':id' => $page['page_id']
));
$pages[$page_key]['page_children'] = $pages[$page_key]['page_children']->fetchAll(PDO::FETCH_ASSOC);
}
echo '<pre>';
print_r($pages);
die();
不过,它在做什么应该是相当明显的:
- 选择所有没有父级的“页面”记录 (page_parent = 0)
- 在步骤 1 中选择所有父母的孩子的“页面”记录
有没有办法把它组合成一条 SQL 语句?
更新以显示所需的输出:
Array
(
[0] => Array
(
[page_id] => 1
[page_children] => Array
(
[0] => Array
(
[page_id] => 2
)
[1] => Array
(
[page_id] => 3
)
)
)
)
【问题讨论】: