【发布时间】:2016-09-15 16:52:23
【问题描述】:
如何通过mysql查询选择类别和子类别以及多子类别? 像这样:
Main category 1
category 1
category 2
category 3
category 4
category 5
Main category 2
category 6
category 7
category 8
category 9
category 10
我试过这段代码,但它不起作用
$cats = mysqli_query($con, "select id,name from categories order by id ASC");
while($row = mysqli_fetch_array($cats)){
$a[$row['name']] = $row;
$has_sub = mysqli_query($con, "select id,name from categories where parent_id=".$row['id']);
if(mysqli_num_rows($has_sub)>0)
$a[$row['name']]['sub'] = mysqli_fetch_array($has_sub);
}
【问题讨论】:
-
欢迎来到stackoverflow。您需要发布迄今为止尝试过的代码。您当前的问题尚不清楚,并且该问题不可重现。我们鼓励您先研究并设计一些代码。请访问stackoverflow.com/help/mcve 了解如何提出问题。
-
上面添加的代码
-
我的问题很明确,我想获得所有类别的树形视图
-
对于像您这样的单表设计,具有任意级别的嵌套类别,您将需要使用递归函数来获取所有级别。以递归方式执行查询将有很大的性能成本。根据您的需要,最好更改您的数据库并仅允许在单独的表中嵌套有限级别的类别,您可以将这些类别连接在一起以更有效地获得此结果。