Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从3个数据库表生成的三级嵌套列表_Php_Mysql - Fatal编程技术网

Php 从3个数据库表生成的三级嵌套列表

Php 从3个数据库表生成的三级嵌套列表,php,mysql,Php,Mysql,我正在尝试使用3个独立数据库表中的信息构建一个3级嵌套列表,这些表通过公共外键和主键链接在一起。到目前为止,我已经知道如何生成列表的前两个级别,即主列表及其子列表,但是,我需要一些帮助来生成子列表的子列表。为了得到类似的结果: <ul> <li>List <ul> <li>Sublist <ul> <li> Super_sublist </li> </ul>

我正在尝试使用3个独立数据库表中的信息构建一个3级嵌套列表,这些表通过公共外键和主键链接在一起。到目前为止,我已经知道如何生成列表的前两个级别,即主列表及其子列表,但是,我需要一些帮助来生成子列表的子列表。为了得到类似的结果:

<ul>
<li>List
<ul>
 <li>Sublist
   <ul>
    <li>
    Super_sublist
    </li>
   </ul>
  </li>
</ul>
</li>
<ul>
这将产生以下sql结果:


我使用不同的方式使用php


和混合MySQL API
MySQL\u error()
以及开放SQL注入。请不要建议那些可能会使他们的数据库处于危险中的代码。哦,我真的不知道,我只是想帮你,我应该删除它吗?不,不是真的;这可能是他们的解决方案。您可以在下面添加一个注释,使用准备好的语句参数化他们的查询和链接。并且
mysql\u error()
应该全部读为
mysqli\u error($conn)
,并将连接传递给函数。那些
mysql\uu
函数不会与
mysqli\u
API混合使用。你在这方面的经验要丰富得多,你可以按你认为合适的方式编辑它,我会马上接受它,它对我也很有用,因为我总是使用这种方法:p
function get_menu($sql) {
    include 'connect.php';
    $result = $conn->query($sql);
    if ($result->num_rows > 0);
    $current_album = "";
    $level2 = "";

    echo "<div id='menu'>\n<div class='menu_pos'>\n<ul class='main-navigation'>\n"; 
    while ($row = $result->fetch_assoc()) {
        if ($current_album <> "" && $current_album <> $row['pageID']) {
        echo "</ul>\n</li>\n";
        }
        if ($current_album <> $row['pageID']) {
            echo "<li id='qoute'><a href='".$row['pageURL']."?pageID=".$row['pageID']."'>".$row['page_name']."</a>\n<ul>\n";  

        $current_album = $row['pageID'];
        }
        if ($row['GeneralID'] == NULL) {
            echo "";
        } else {        
        echo "<li><a href='#'>".$row['general_name']."</a>\n</li>";
        }

    }
    echo "</ul>\n</div>\n</div>\n";
}
    <div id='menu'>
<div class='menu_pos'>
<ul class='main-navigation'>
<li id='qoute'><a href='0?pageID=7'>get quote</a>
<ul>
</ul>
</li>
<li id='qoute'><a href='info.php?pageID=4'>tjänster</a>
<ul>
<li><a href='#'>ovrigt stenarbete</a>
</li><li><a href='#'>lagning av trasiga stenskivor</a>
</li><li><a href='#'>montering av stenmaterial</a>
</li></ul>
</li>
<li id='qoute'><a href='info.php?pageID=3'>produkter</a>
<ul>
</li><li><a href='#'>golvplattor</a>
</li><li><a href='#'>köksbänkskivor</a>
</li><li><a href='#'>diskhoar</a>
</li><li><a href='#'>fönsterbänkar</a>
</li><li><a href='#'>golvplattor</a>
</li><li><a href='#'>fönsterbänkar</a>
</li></ul>
</li>
<li id='qoute'><a href='info.php?pageID=2'>om företaget</a>
<ul>
<li><a href='#'>utställning</a>
</li><li><a href='#'>köpvillkor</a>
</li></ul>
</li>
<li id='qoute'><a href='index.php?pageID=1'>hem</a>
<ul>
</ul>
</div>
</div>
select page_list.pageID as pageID, page_list.page_name as page_name,
       page_list.pageURL as pageURL, level2_menu.GeneralID as GeneralID,
       level2_menu.gener_name as general_name, level3_menu.deepID as deepID,
       level3_menu.deep_title as deep_title 
FROM page_list 
   LEFT OUTER JOIN level2_menu on page_list.pageID = level2_menu.pageID 
   LEFT OUTER JOIN level3_menu on level2_menu.GeneralID = level3_menu.generalID 

UNION

select page_list.pageID as pageID, page_list.page_name as page_name,
       page_list.pageURL as pageURL, level2_menu.GeneralID as GeneralID,
       level2_menu.gener_name as general_name, level3_menu.deepID as deepID,
       level3_menu.deep_title as deep_title 
FROM page_list 
   RIGHT OUTER JOIN level2_menu on page_list.pageID = level2_menu.pageID     
   RIGHT  OUTER JOIN level3_menu on level2_menu.GeneralID = level3_menu.generalID 
order by pageID desc
+--------------------+------------+----------+-----------+---------------+--------+------------+
| pageID Ascending 1 | page_name  | pageURL  | GeneralID | general_name  | deepID | deep_title |
+--------------------+------------+----------+-----------+---------------+--------+------------+
|                  7 | get quote  | 0        | NULL      | NULL          | NULL   | NULL       |
|                  4 | tjanster   | info.php | 9         | Title         | NULL   | NULL       |
|                  3 | products   | info.php | 5         | Title 2       | 8      | Subtitle   |
+--------------------+------------+----------+-----------+---------------+--------+------------+