Php 打印完整的传递闭包树

Php 打印完整的传递闭包树,php,mysql,transitive-closure-table,Php,Mysql,Transitive Closure Table,在我们的在线商店(PHP/MySQL)中,对于我们的类别结构,我们使用了一个可传递的闭包表(祖先、后代、长度),如Bill Karwin所述 我发现它非常灵活和有用,但无法解决如何在没有递归的情况下打印完整的类别树。这可能吗 例如,我希望输出类似于: 音频 便携式 MP3 计算 光驱 DVD-RW 输入设备 无线的 键盘 家用电器 电视 液晶显示器 宽屏 阴极射线管 可选地通过总类别深度进行限制 这是这种模式的局限性,还是有办法解决?目前,我一直在使用递归并缓

在我们的在线商店(PHP/MySQL)中,对于我们的类别结构,我们使用了一个可传递的闭包表(祖先、后代、长度),如Bill Karwin所述

我发现它非常灵活和有用,但无法解决如何在没有递归的情况下打印完整的类别树。这可能吗

例如,我希望输出类似于:

  • 音频
    • 便携式
      • MP3
  • 计算
    • 光驱
      • DVD-RW
    • 输入设备
      • 无线的
        • 键盘
  • 家用电器
  • 电视
    • 液晶显示器
      • 宽屏
    • 阴极射线管
可选地通过总类别深度进行限制


这是这种模式的局限性,还是有办法解决?目前,我一直在使用递归并缓存结果。

递归是最简单的方法,尤其是用于显示的方法


或者,您也可以从MySQL中按照此答案中的建议执行此操作

我假设您已经编写了一个函数来执行此操作-如果没有,我可以提供一个用于此目的的函数。