与mysqli查询问题
问题描述:
朋友我卡住了,需要你的帮助!与mysqli查询问题
当使用MySQL进行动态菜单我使用查询SELECT * FROM网页,PARENTID = 0和子菜单WHERE PARENTID =“$ PAGEID” ...但是这种做法并不似乎何时工作使用MySqli ..我看到的主要原因之一是查询应该写在函数之外,因为在函数内它简单不工作..不知道为什么。反正这里是我的代码,我希望你的朋友能帮我解决这个问题
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 为子查询不工作亲爱的朋友,如果你能帮助我,请给我一个大恩惠 谢谢
答
$mysql
没有在你的函数范围内定义。你应该把它作为一个参数:
function Get_menu($mysql)
+0
感谢Mathieu,它也非常丰富 – user1231648 2013-02-17 23:58:16
答
试分析如下:
$query =
"SELECT PageTitle, PageID, ParentID
FROM
pages subs
INNER JOIN
pages cats
ON
subs.ParentID = cats.PageId
GROUP BY PageID" ;
或者您的数据库会被pwn3d并强调,如果你打算用1
获取类别1修正了代码格式化,因为它有点难以阅读。 – kufudo 2013-02-17 23:49:59
该代码可以并应该重写为单个JOINed查询。 – 2013-02-17 23:56:07