返回类别树的Mysql查询

Vib*_*haJ 6 php mysql sql-order-by categories

我正在进行品类管理.我每行都有parentId的地方.类别可以是n级.我可以递归调用php函数,它将返回类别树数组.

在此输入图像描述

现在问题是:在管理员面板中,我想要类别列表页面,如下所示.即哪个类别.

  • 产品(编辑)(删除)
  • 产品>产品1(编辑)(删除)
  • 产品>产品2(编辑)(删除)
  • 产品>产品2>产品2 1(编辑)(删除)
  • 产品>产品2>产品2 2(编辑)(删除)
  • 联系我们(编辑)(删除)

我希望mysql查询结果与上面显示的顺序相同.我不知道我怎么能实现它.

SELECT *
FROM tbl_categories
ORDER BY ???
Run Code Online (Sandbox Code Playgroud)

请指导.

Sas*_*ant 0

您无法通过单个 mysql 查询来实现此目的。您可以通过执行多个查询来实现这一点。该算法是这样的:首先创建一个数据集对象,您将通过从数据库获取数据来填充该对象。创建一个方法,该方法采用父 id 作为参数,如果存在则返回其子节点,如果没有子节点则返回 -1。步骤1:获取所有没有父(根)节点的行。Step2:迭代这个结果。例如,如果 prod1 和 prod2 是结果集中的初始返回节点。迭代此 RS,我们得到 prod1,然后在 DataSET 对象中插入一行。然后我们将 prod1 的 id 发送给 getCHILD 方法,以获取它的子节点,然后再次迭代返回的结果集,并再次调用 getCHILD 方法,直到我们拿不到最低的节点。