不用递归实现树形结构的一种方法
主要的技巧在Level(帖子回复深度)的操作上
SunADM 于 2000.07.26
____________________________________________
演示表的结构
____________________________________________
表名:BBS
字段 | 数据类型 | 说明 |
| ID | 自动编号 | |
| RootID | Int | 根帖ID,本身为根帖则RootID = ID |
| FID | Int | 父帖ID,上一层帖子的ID,如是根帖则FID = NULL |
| Level | SmallInt | 根帖Level=0,其他依据回复的深度递增 |
| Subject | Char | 主题 |
____________________________________________
SQL 语句(须据此创建记录集 rs):
____________________________________________
SELECT *
FROM BBS
ORDER BY BBS.RootID DESC, BBS.Level, BBS.FID, BBS.[ID] DESC
____________________________________________
显示树形结构的有关语句:
____________________________________________
Level = 0
Response.Write "<ul>"
While NOT rs.EOF
If rs("Level") < level Then
For i = 1 To Level-1
Response.Write "</ul>"
Next
End If
If rs("Level") > level Then
Response.Write "<ul>"
End If
Response.Write "<li>" & rs("Subject") & "</li>"
level = rs("Level")
rs.MoveNext
Wend
Response.Write "</ul>"
__________________________________________________________
后记:原来我一直用递归做这事,因为觉得主要的速度瓶颈该是在
分页上面,所以一直……呵呵!直到今天廖家远当头棒喝……
希望对大家有所帮助(扔几块玉过来吧!准备好了几个麻袋等着那!:P)
Last Modified 2K-07-26 13:14
http://www.itcnw.com/