【问题标题】:select categories and subcategories and the sub of subcategories (multidimensional view)选择类别和子类别以及子类别的子类别(多维视图)
【发布时间】: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 了解如何提出问题。
  • 上面添加的代码
  • 我的问题很明确,我想获得所有类别的树形视图
  • 对于像您这样的单表设计,具有任意级别的嵌套类别,您将需要使用递归函数来获取所有级别。以递归方式执行查询将有很大的性能成本。根据您的需要,最好更改您的数据库并仅允许在单独的表中嵌套有限级别的类别,您可以将这些类别连接在一起以更有效地获得此结果。

标签: php mysql


【解决方案1】:

现在回答有点晚了,但对于仍在搜索此内容的任何人: 您可以在 MySQL 中使用带有 WITH 关键字的递归查询来执行此类操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    相关资源
    最近更新 更多