繁体   English   中英

从数据库中获取记录并自动生成树

[英]fetch records from databse and generate tree automatically

我有三张桌子:

部 :

在此输入图像描述

指定 :

在此输入图像描述

部门指定:

在此输入图像描述

DesignationIDReportTo是表格指定的外键,表示特定指定报告给特定指定。 经理 (指定)向首席执行官报告(也是指定)

现在我要生成一棵树,就像......

在此输入图像描述

我手动输入显示在树上方的条目。

在此输入图像描述

现在我的问题是,我无法以自动生成此树的方式编写函数。

简而言之,从数据库中获取记录后,我想生成如上所示的树。

任何方案?

注意:树的水平不固定,可能不受树木的限制

它是Java,因此您可以根据需要将树形成为深层。

从UI呈现中将查询与树的总体分开,您将没有问题。 查询数据库,填充树并将其提供给要呈现的UI。

如果您尝试将一个部件与另一个部件混合,则会出现问题。

这是一个暗示。

这是一棵树,你需要递归迭代树项目,直到你到达叶子级别,以填充它,如在@duffymo的回答中所提到的,你应该从你的查询中分离树种群的逻辑。

链接,如果你仍然无法解决

好运 :-)

您可以使用这样的Tree结构 ,然后从查询中填充它。

然后,您将有不同的选择,例如:

1)您将树转换为JSON并使用jQuery递归迭代它 ;

2)你直接用Java(递归)迭代它,构建输出服务器端(假设一个包含你的HTML的大字符串)。 然后你只需将结果注入页面(由于服务器和客户端之间的耦合,这不是那么好)

等等...

我想你可以用php来绘制这棵树。 例。
编写连接查询以选择要排到<li>
while(!empty($row))
{
echo'<li><ul>$row[designation name]';
while(!empty($next))
{echo'<li><ul>$next[designation name]';
//next sentence must be a select query }
echo'</ul></li>'
}
echo'</ul><li>' }
<li>
while(!empty($row))
{
echo'<li><ul>$row[designation name]';
while(!empty($next))
{echo'<li><ul>$next[designation name]';
//next sentence must be a select query }
echo'</ul></li>'
}
echo'</ul><li>' }

这不是你的答案,而是一个可以说出逻辑的提示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM