做一个论坛的树形结构显示,递归大家都知道,主要是效率问题,增加一个字段,这里是Level
http://www.156ok.com/article/article_list.asp?account_id=32
标题:不用递归实现树形结构 | ||||||
文章的关键字: | ||||||
| ||||||
SunADM不用递归实现树形结构的一种方法 主要的技巧在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 by SunADM |