php mysql 基于ID的分层数据处理

发布于 2025-01-10 22:03:16 字数 1624 浏览 3 评论 0原文

我有一个示例 MySQL 表,其中包含列 ID、NAMEID_PARENT

ID名称ID_PARENT
1节点 1
2节点 21
3节点 32
4节点 42
5节点 51
6节点 65
7节点76
8节点 87
9节点 96
10节点 105
11节点 11
12节点 1211
13节点1311
14NODE 1413
18NODE 1514

我有以下基于上述数据的树,我需要根据提供的 ID 获取节点/树/层次结构。

NODE 1
  NODE 2
    NODE 3
    NODE 4
  NODE 5
    NODE 6
      NODE 7
        NODE 8
      NODE 9
   NODE 10
NODE 11
  NODE 12
  NODE 13
    NODE 14
      NODE 15

现在,如果我提供 ID=6 (NODE 6) 那么我们应该拥有 NODE 6 的所有父母(及其孩子)以及 NODE 的所有嵌套孩子6。因此,我们应该有从 1 到 10节点,因为它们属于一个父节点 1。提取的树将是。

NODE 1
  NODE 2
    NODE 3
    NODE 4
  NODE 5
    NODE 6
      NODE 7
        NODE 8
      NODE 9
   NODE 10

那么,我们怎样才能实现上述场景呢?

注意:我使用的是 PHP 7 和 MySQL 5.6。

I have a sample MySQL table with the columns ID, NAME AND ID_PARENT.

IDNAMEID_PARENT
1NODE 1NULL
2NODE 21
3NODE 32
4NODE 42
5NODE 51
6NODE 65
7NODE 76
8NODE 87
9NODE 96
10NODE 105
11NODE 11NULL
12NODE 1211
13NODE 1311
14NODE 1413
18NODE 1514

And I have the following tree based on the above data and I need to fetch a node/tree/hierarchy based on ID provided.

NODE 1
  NODE 2
    NODE 3
    NODE 4
  NODE 5
    NODE 6
      NODE 7
        NODE 8
      NODE 9
   NODE 10
NODE 11
  NODE 12
  NODE 13
    NODE 14
      NODE 15

Now if I provide ID=6 (NODE 6) then we should have all the PARENTS (with their CHILDREN) of NODE 6 plus all the nested CHILDREN of NODE 6. So, we should have NODES from 1 to 10 as they fall under one PARENT NODE 1. The extracted tree would be.

NODE 1
  NODE 2
    NODE 3
    NODE 4
  NODE 5
    NODE 6
      NODE 7
        NODE 8
      NODE 9
   NODE 10

So, how can we achieve the above-mentioned scenario?

NOTE: I am using PHP 7 and MySQL 5.6.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文