0

朋友们,我被困住了,需要你的帮助!

当使用 MySql 制作动态菜单时,我使用查询SELECT * FROM pages WHERE ParentID = 0和子菜单WHERE ParentID = '$PageID' ...但是这种方法在使用 MySqli 时似乎不起作用.. 主要之一我看到的原因是 Query 应该写在函数之外,因为在函数内部它简单不起作用..不知道为什么。无论如何,这是我的代码,我希望你们的朋友能帮助我解决这个问题

function Get_menu() {
    $menuQuery = $mysql->query("SELECT PageTitle, PageID, ParentID FROM pages WHERE ParentID = 0");
    while (($row = $menuQuery->fetch_assoc()) !== null) {
        echo '<li class="menu-item"><a href="page.php?pageID=' . $row["PageID"] . '">' . $row["PageTitle"] . '</a>';
        $PageID = $row["PageID"];
        $SubmenuQuery = $mysql->query("SELECT PageTitle, PageID, ParentID FROM pages WHERE ParentID = '$PageID'");
        if($SubmenuQuery->num_rows > 0) {
            echo '<ul class="sub-menu">';
            while (($rowx = $SubmenuQuery->fetch_assoc()) !== null) {
                echo '<li class="menu-item"><a href="page.php?pageID=' . $rowx["PageID"] . '">' . $rowx["PageTitle"] . '</a></li>';
            }
            echo '</ul>';
        }
        echo '</li>';
    }
}

我曾尝试在函数之外编写查询,但子菜单的查询不起作用,因为它假定 $PageID 为 0。亲爱的朋友,如果你能帮助我,那将是一个很大的帮助,谢谢

4

2 回答 2

0

$mysql未在您的函数范围内定义。您应该将其作为参数传递:

function Get_menu($mysql)
于 2013-02-17T23:46:09.710 回答
0

试着分析一下:

$query = 
"SELECT PageTitle, PageID, ParentID 
FROM 
  pages subs 
INNER JOIN 
  pages cats 
ON 
  subs.ParentID = cats.PageId 
GROUP BY PageID" ;

或者,如果您要逐个获取类别,您的数据库将是 pwn3d 并且压力很大。

于 2013-02-18T00:01:12.343 回答