[mysql]SQL检索树数据,但顺序不同
这是我需要表达的IA。(树模型) 这是我需要制作的HTML DOM。正如您所看到的,[mysql]SQL检索树数据,但顺序不同,mysql,tree,Mysql,Tree,这是我需要表达的IA。(树模型) 这是我需要制作的HTML DOM。正如您所看到的,depth2和depth3(最多5或6个)处于相同的DOM级别,而depth1将它们作为子级。(我必须这样做,因为CSS) 我尝试按级别排序,但结果不正确。(顺序应与HTML DOM顺序相同) 我怎样才能订购与HTML相同的订单 最难的部分是depth2或depth3在其父级(depth1)之下(作为一个组) 我做了一个jQuery代码来解决我的问题。但我不能应用jQuery,因为实际数据太大(几百个),重新排列
depth2
和depth3
(最多5或6个)处于相同的DOM级别,而depth1将它们作为子级。(我必须这样做,因为CSS)
我尝试按级别排序,但结果不正确。(顺序应与HTML DOM顺序相同)
我怎样才能订购与HTML相同的订单
最难的部分是depth2
或depth3
在其父级(depth1)之下(作为一个组)
我做了一个jQuery
代码来解决我的问题。但我不能应用jQuery
,因为实际数据太大(几百个),重新排列HTML元素需要一些恼人的时间。我不能给客户方增加负担
我搜索了一下怎么做。但是我必须考虑用户禁用的JavaScript。< /P>
请分享您的不同观点或新想法,甚至技巧。(express语言是JSP)谢谢。正如您所看到的,可以通过一个简单的查询从数据库中提取数据,然后编写用该数据填充树结构的代码 我不知道你为什么认为唯一的选择是在过程的最末端——数据库和表示层 <>你不说你在中间层使用什么编程语言——我猜它不是JQuery的JavaScript。不管是什么,执行数据库查询的中间层服务器端语言肯定比客户端javascript更适合创建树结构 如果出于某种原因确实必须在数据库中执行此操作,我建议使用存储过程
还请注意,出于此目的,其他一些数据库具有分层查询语法(如Oracle的“CONNECT BY”)。如果必须使用MySQL而无法更改表结构,则可以使用存储过程生成结果。MySQL不能运行递归查询,因为其他一些RDBMS可以运行。事实上,我从某处得到了一个存储过程。但是我不能修改它。我按照你的建议用编程语言解决这个问题。非常感谢。
about us
company
history
location
ceo
product
mobile
iphone
galaxy 3
<div class="depth1"><span>about us</span>
<div class="depth2">company</div>
<div class="depth2">ceo</div><!--CEO is here! not below "location" -->
<div class="depth3">history</div>
<div class="depth3">location</div>
</div>
<div class="depth1"><span>product</span>
<div class="depth2">mobile</div>
<div class="depth3">iphone</div>
<div class="depth3">galaxy 3</div>
</div>
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
3 7 2 100 mobile
4 5 3 200 location
5 2 2 100 company
6 5 3 100 history
7 1 1 200 product
8 3 3 100 iphone
9 3 3 200 galaxy
10 2 2 200 ceo
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
7 1 1 200 product
3 7 2 100 mobile
5 2 2 100 company
10 2 2 200 ceo
8 3 3 100 iphone
6 5 3 100 history
4 5 3 200 location
9 3 3 200 galaxy
id(pk) p_id level order name
------------------------------------------
1 root 0 0 -
2 1 1 100 about us
5 2 2 100 company
10 2 2 200 ceo
6 5 3 100 history
4 5 3 200 location
7 1 1 200 product
3 7 2 100 mobile
8 3 3 100 iphone
9 3 3 200 galaxy 3