在族谱中寻找共同祖先的概念 SQL/PHP

问题描述

我在 MariaDB 中有一张表,里面有人:

enter image description here

我有一个 PHP显示感兴趣的人的树。它向上显示父项,向下显示子项,两者都是递归的。

我的计划是添加一个 PHP显示共同的祖先。但我不知道我的方法应该是什么。我找到了一些 sql 查询来查找共同祖先(虽然没有让它工作),但是我将如何呈现数据?

我的计划是尝试使用我的递归函数,更精确地使用子函数

所以它会是这样的:

<div class="tree mx-auto d-flex flex-Nowrap">
        <ul>
            <li>Common ancestor
                <ul>
                    <li>
                        Child 1
                        <ul>
                            <li>Child 11</li>
                            <li>Child 12
                                <ul>
                                    <li>Child 121</li>
                                    <li>Relative 1</li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li>Child 2
                        <ul>
                            <li>
                                Child 21
                                <ul>
                                    <li>
                                        Child 211
                                        <ul>
                                            <li>Relative 2</li>
                                        </ul>
                                    </li>
                                    <li>Child 212</li>
                                    <li>Child 213</li>
                                </ul>
                            </li>
                            <li>Child 22</li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </div>

哪个会给出:

enter image description here

一些想法。如果我在输入两个 ID 时找到一个共同的祖先。我将如何指导或引导我的递归孩子对两个亲戚的功能?我如何告诉递归函数继续挖掘哪个孩子?

或者 sql 查询是否应该返回相对于共同祖先的整个跟踪?我应该有三个查询吗?

  1. 输入 ID#1、ID#2,返回共同祖先 (CA) 的 ID
  2. 输入 ID#1、ID#CA,从下到上返回跟踪,分支 1
  3. 输入 ID#2,ID#CA,从下到上返回跟踪,分支 2

然后基于两个分支用PHP构建列表/树?或者我可以通过一个查询来做到这一点吗?也许这总体上是一个糟糕的方法

编辑:共同的祖先最喜欢永远是两个人,妈妈和爸爸。我怎么能处理呢?也许把爸爸妈妈放在一个 <li></li> 下,然后把孩子放在下面?

正如我所说,我的概念或方法需要一些帮助。我可能可以管理的 sql/PHP。我认为 (:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...