在动态菜单中回显连接查询PHP

在动态菜单中回显连接查询PHP,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我在测试数据库中有两个表: 信息(id、菜单、位置、可见) 页面(id、信息、菜单、位置、可见、内容) 我试着用它制作一个相关的导航,如下所示: public(id=1的表内信息) 主页(信息为1的表页内) 关于我们(包含信息的表格页面内\u id=1) 工作(信息为1的表格页面内) cms(id=2的表内信息) 文章(信息为2的表格页面内) 添加用户(在信息为2的表格页面内) 当我在PHPMyadmin中查询表时,我得到了我需要的结果,但是当我尝试在PHP中回显结果时,我没有得到想

我在测试数据库中有两个表: 信息(id、菜单、位置、可见) 页面(id、信息、菜单、位置、可见、内容)

我试着用它制作一个相关的导航,如下所示:

  • public(id=1的表内信息)

    • 主页(信息为1的表页内)
    • 关于我们(包含信息的表格页面内\u id=1)
    • 工作(信息为1的表格页面内)
  • cms(id=2的表内信息)

    • 文章(信息为2的表格页面内)
    • 添加用户(在信息为2的表格页面内)
当我在PHPMyadmin中查询表时,我得到了我需要的结果,但是当我尝试在PHP中回显结果时,我没有得到想要的带有子项的结构化菜单

<?php

$info_set = $db->prepare("SELECT *
                          FROM ccms.information");
$info_set->execute();

while ($information = $info_set->fetch(PDO::FETCH_ASSOC)) {
    echo "<li>" . $information["menu"] . "</li>";

    $page_set = $db->prepare("SELECT i.*,p.*  
                              FROM information i 
                              JOIN pages p 
                              ON i.id = p.information_id");

    $page_set->execute();
    echo "<ul>";

    while ($pages = $page_set->fetch(PDO::FETCH_ASSOC)) {
        echo "<li>" . $pages["menu"] . "</li>";
    }
    echo "</ul>";
}
?>

结果是信息表中的菜单项得到了很好的回显,但子项没有。 我错过了什么


我向大家道歉,我的问题可能过于简单,我是PHP和SQL的新手

在子项查询中,您是否需要将
ccms.
放在表名前面?您的子项查询可以更有效地编写为
SELECT*,从p页开始,其中p.information\u id=:iid
后跟
$page\u set->bindParam(':iid',$information['id')谢谢你,尼克,行得通。你能/能给我解释一下bindParam是做什么的吗?我想理解。基本上,它将值(在本例中为
$information['id']
)链接到已准备好的查询中的命名参数(
:iid
)。这封信解释得很好。非常感谢你,尼克!这很有帮助。