【问题标题】:create tree from mySql database从 mySql 数据库创建树
【发布时间】:2012-05-15 16:08:53
【问题描述】:

我在 db 中有一个带有 fields 的表

-----------------------
Id | Value | Path | Parent
-----------------------

1  | Asia  | 1    | 0 
2  | India | 1/2  | 1
3  | Goa   | 1/2/3| 2

该列表包含世界上所有的城市。 所以这是一个相当大的列表。

问题

如果我的产品为叶子选择了所有父母。 [例如,ID:3 的 ID 3、2、1] 比我可以使用 AJAX 函数生成基于 ParentID 的树。

但是

我选择了一种产品,它给了我树叶。 [例如,ID:3] 所以我需要使用Path 解析生成树,这听起来太糟糕了[解析字符串会很慢。]

这件事有什么通用的解决方案吗? - 我可以创建一个视图并存储相应的父母 r.f 叶吗? - 使用梨树?

或任何其他直接涉及DB 的更好解决方案。?

编辑

树结构:

Asia
 >India
   >Goa

编辑

解析PATH的递归函数不适合这个工作。那会很慢。

【问题讨论】:

  • 只是一个建议,只需存储父 id,例如印度父 id 为 1,果阿父 id 应为 2。并在您的 ajax 中添加此父 id :-)
  • 好的,但您能否详细说明获取 parentID。目前我只有叶子的 parentID,我需要 parentID 直到顶部。
  • 我认为会有这样的根节点让亚洲,欧洲是平行的根节点,没有任何父节点,所以他们的父 ID 将 ID 为 0,然后当你显示元素时寻找他们的父 ID .显示所有以 0 为根节点的节点,然后单击它们加载具有相应父节点的节点,例如,当我在 asia 上单击时,加载所有以 asia 即 1 作为其父 id 的国家/地区。
  • 是的@RohitKumarChoudhary,这很好而且可行。但我必须向后移动。我有叶子,需要创建一棵树[其过滤] 所以问题。
  • 对不起!这对我来说不是很清楚。你能详细说明一下吗?

标签: php mysql tree pear


【解决方案1】:

PEAR 的Tree package 专为这项特定任务而设计。试试这个经过验证的包,而不是自己发明代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2019-12-23
    • 2018-03-02
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多