mysqli查询问题

时间:2013-02-17 23:42:13

标签: php mysql mysqli

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

当使用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。 亲爱的朋友,如果你能帮助我,那将是一件大事 谢谢

2 个答案:

答案 0 :(得分:0)

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

function Get_menu($mysql)

答案 1 :(得分:0)

尝试分析一下:

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

或者你的数据库将被pwn3d强调,如果你打算逐一取类别。