不用递归实现树形结构的一种方法

发表于:2007-06-30来源:作者:点击数: 标签:
主要的技巧在Level(帖子回复深度)的操作上 SunADM 于 2000.07.26 ____________________________________________ 演示表的结构 ____________________________________________ 表名:BBS 字段 数据类型 说明 ID 自动编号 RootID Int 根帖ID,本身为根帖则R
     主要的技巧在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.ltesting.net