正如答案中指出的那样,我不是要组织结果,而是要过滤它们。对不起,我很抱歉! :d
我已经尽力去解决这个问题了,但是我很难找到解决方案..
我有一个具有这种结构的SQL数据库,因为我正在尝试创建一个基本的CMS:
我想要做的是在页面上进行导航,循环所有行并使它们看起来像链接,我的老师在几个月前帮助了我:
$query_MenuItems = "SELECT pageid,title,menu_par FROM v2 ORDER BY menu_par ASC";
$MenuItems = $mysqli->query($query_MenuItems);
$row_MenuItem = $MenuItems->fetch_assoc();
$totalRows_MenuItems = $MenuItems->num_rows;
do { echo
"<a href=\"?page={$row_MenuItem['pageid']}\">{$row_MenuItem['title']}</a><br/>";
}
while ($row_MenuItem = $MenuItems->fetch_assoc());
}
这很好用,但我的问题是我不知道如何根据menu_par的值对不同的链接进行排序。
我觉得我已经尽了一切力量来解决这个问题,这让我感到压力
有没有什么方法可以像上面那样制作一个类似的循环,但是使用多个进行排序?:
while ($row_MenuItem = $MenuItems->fetch_assoc())
{
if ("{$row_MenuItem['menu_par']}" == '1') echo
"<a href=\"?page={$row_MenuItem['id']}\">{$row_MenuItem['title']}</a><br/>";
}
我希望你们能帮助我:)。
答案 0 :(得分:2)
首先,我没有阅读整个问题,但加载所有数据,然后,将其排序到PHP似乎不是一个好主意。 DBMS就是为此而设计的,并且由于您对反向数据的查询,您应该通过执行类似的操作直接对它们进行排序
SELECT pageid,title,menu_par FROM v2 order by menu_par
答案 1 :(得分:2)
为什么不在SQL查询中使用ORDER BY
?
SELECT pageid,title,menu_par FROM v2 ORDER BY menu_par ASC
通过此查询(以及ORDER BY x ASC子句),记录按menu_par值按升序排序......
您可以在此处详细了解:http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html
如果您想根据menu_par
值过滤结果(例如,您只想选择具有menu_par == 1
的链接)您将使用WHERE
子句:
SELECT pageid,title,menu_par FROM v2 WHERE menu_par = 1
答案 2 :(得分:0)
您应该使用WHERE
子句在数据库中执行此操作。
SELECT pageid,title,menu_par FROM v2
WHERE menu_par = 1