不用遞迴實現樹形結構的一種方法

hljhrbsjf發表於2006-04-05
主要的技巧在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 "
    "

    While NOT rs.EOF

    If rs("Level") < level Then
    For i = 1 To Level-1
    Response.Write "
"
Next
End If

If rs("Level") > level Then
Response.Write "
    "
    End If
    Response.Write "
  • " & rs("Subject") & "
  • "

    level = rs("Level")
    rs.MoveNext

    Wend

    Response.Write "
"
__________________________________________________________
後記:原來我一直用遞迴做這事,因為覺得主要的速度瓶頸該是在
分頁上面,所以一直……呵呵!直到今天廖家遠當頭棒喝……
希望對大家有所幫助(扔幾塊玉過來吧!準備好了幾個麻袋等著那!:P)
Last Modified 2K-07-26 13:14[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/631872/viewspace-825306/,如需轉載,請註明出處,否則將追究法律責任。

相關文章