亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

論壇樹狀記錄表的堆棧展開

2019-11-18 21:00:05
字體:
來源:轉載
供稿:網友
由于工作原因,涉及到一個樹狀存放記錄的表,要求程序中把樹狀表全部展開,并輸出相應的數據內容。由于涉及到此種操作的地方很多,比如網絡上的///"論壇"就是典型的采用樹狀存放記錄的表,特此整理出來與大家分享。
     在很多資料都有介紹展開樹狀記錄的程序,但是很多是采用遞歸的方法。我們知道,遞歸的方法邏輯比較簡單,實際操作起來比較容易。但是遞歸有一個最大的缺點就是占用資源太多,速度太慢。如果在互聯網的"論壇"上采用此種方法,在表記錄很多的情況下將是一個非常嚴重的問題。下面的程序在筆者的工作中解決了一個大問題并將應用于本人小站(yuking.126.com)的論壇。
     我這里采用速度非??斓亩褩韺崿F這種操作,但是操作起來相對而言難度加大。我們就以論壇記錄表為例講解這一過程,首先了解一下表結構:

一、表結構(article)
     self       int    '本記錄ID號
     father     int    '父記錄ID號
     title      char   '貼子標題
     author     char   '貼子作者
     datetime   date   '發貼日期時間
     hits       int    '點擊數
     reply      int    '回復數
      .....            '根據具體的情況我們還可以有更多的字段
     1)關鍵說明:self是記錄本記錄的ID號,這應該是一個自動增長的字段,不充許重復。father是記錄本結點的父結點ID號的字段,若該記錄內容為"回貼"此字段值應該為"主貼"的ID號。若該記錄為"主貼"則它的父結點應該為"0"
     2)如下兩條記錄是父子記錄:
      self   father     title                       author       .....
            1       0        '誰能幫幫我'               '三腳貓'
            2       1        '我能幫你什么忙嗎?'       '網上飛'
        
二、操作方法
      首先,我們讀出所有父結點為"0"的記錄也就是"主貼",統統放入堆棧中。然后輸出位于棧頂的一條記錄("主貼")數據,并清空棧頂,棧頂下移一格。接著查找所有父結點為該棧項結點("主貼")的記錄("回貼"),也統統放于棧頂。注意到沒有,就這兩步我們就完成了把一條父記錄輸出并展開其子結點的工作。余下的工作只是依次類推而已了,直到棧為空為止。
     當然實際操作時可能還會有一些要求,比如要求得到記錄的層數,回復數等等問題,我們只需稍加改進就能實現。
           
三、這里是整理后的原代碼
<%
set RS=server.CreateObject("ADODB.Recordset")

sql_text="select * from article where father=0 order by datetime desc"
RS.Open sql_text,Bbs_ConnectionString  '查找所有父結點為'0'的結點,即"主貼"。

Dim Stack(100,8)   '定義堆棧,我這里是100('8'是指每個棧元素分別存放8個字段值)。'可根據實際情況定義堆棧大小,可以按這個公式計算"最多層數*最多展開數"。
while not Rs.eof
    Stack(0,0)=RS("self")
    Stack(0,1)=RS("father")
    Stack(0,2)=RS("title")
    Stack(0,3)=RS("author")
    Stack(0,4)=RS("datetime")
    Stack(0,5)=RS("hits")
    Stack(0,6)=RS("reply")
    Stack(0,7)=0
        Top=1
        do until Top=0
        Sql_text="select * from article where father="&StackTop&"
        RS1.Open Sql_text,MyConn    '查找所有父結點為棧頂結點的記錄
             '輸出棧項元素,我這里是直接輸出,實際做的時候可以產生表格等等效果
        for i=0 to 7     
                 Response.write stack(top-1,i)  
        next

        ParentLevel=stack(top-1,7)      '清空堆棧之前獲得父記錄的層數
        for i=0 to 7                    '清空堆棧項部
           Stack(top-1,i)=""
        next
        Top=top-1                       '棧頂向下移動一格
             '將查找到的棧項結點"派生出"的全部子記錄存入堆棧
            While not RS1.eof
                  Stack(Top,0)=RS1("self")
            Stack(Top,1)=RS1("father")
            Stack(Top,2)=RS1("title")
                 Stack(Top,3)=RS1("author")
              Stack(Top,4)=RS1("datetime")
              Stack(Top,5)=RS1("hits")
            Stack(Top,6)=RS1("reply")
                Stack(Top,7)=ParentLevel+1        
                Rs1.movenext
                Top=Top+1  '棧項向上移動
            Wend
        Rs1.close
    loop
    Rs.MoveNext  '移動到下一條記錄
Wend
Rs.close
set Rs=nothing
set Rs1=nothing
%>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频在线视频| 美日韩精品免费观看视频| 国产精品视频播放| 日韩av在线资源| 久久深夜福利免费观看| 亚洲成人在线视频播放| 91精品视频专区| 日韩中文字幕欧美| 欧美日韩一区二区免费视频| 97香蕉超级碰碰久久免费软件| 中文精品99久久国产香蕉| 91精品国产91久久久久久吃药| 97色伦亚洲国产| 亚洲欧洲国产精品| 久久影院中文字幕| 中文字幕久精品免费视频| 国产成人免费av电影| 久久亚洲精品中文字幕冲田杏梨| 中文字幕av一区中文字幕天堂| 国产99视频在线观看| 欧美精品videossex性护士| 亚洲精品电影在线观看| 97视频国产在线| 亚洲国产福利在线| 久久香蕉国产线看观看网| 国产精品777| 国产中文字幕日韩| 成人欧美一区二区三区黑人孕妇| 欧美二区在线播放| 国产美女精品免费电影| 日韩小视频在线观看| 日韩精品在线免费观看| 精品国产区一区二区三区在线观看| 色综合久久天天综线观看| 91精品啪在线观看麻豆免费| 欧美精品videosex牲欧美| 一区二区三区动漫| 久久久www成人免费精品| 日韩欧美亚洲成人| 日韩va亚洲va欧洲va国产| 国产999精品久久久影片官网| 欧美性69xxxx肥| 久久久在线免费观看| 国产精品va在线播放我和闺蜜| 日本亚洲欧洲色| 国产精品一区二区3区| 国产视频久久久久| 亚洲黄页网在线观看| 亚洲精品国产欧美| 欧美日韩国产精品专区| 日韩欧美高清在线视频| 欧美亚洲国产日本| 国产成人在线视频| 成人久久久久久| 国产精品99久久久久久人| 91情侣偷在线精品国产| 欧美电影在线观看| 国产精品一区二区三区成人| 欧美福利视频在线观看| 亚洲自拍偷拍色图| 国产精品美乳一区二区免费| 3344国产精品免费看| 久久国产精品影视| 国产日韩亚洲欧美| 日韩成人免费视频| 国自在线精品视频| 欧美视频在线免费看| 日韩精品中文字幕在线观看| 中文字幕精品在线| 色伦专区97中文字幕| 中文字幕亚洲无线码a| 国产精品视频在线播放| 国精产品一区一区三区有限在线| 欧美激情亚洲自拍| 尤物精品国产第一福利三区| 国产精品青青在线观看爽香蕉| 国产精品一区二区三区久久久| 亚洲伊人第一页| 国产视频精品免费播放| 国产成人自拍视频在线观看| 欧美成人黑人xx视频免费观看| 国产欧美亚洲精品| 亚洲欧洲在线看| 欧美激情一区二区三区成人| 亚洲护士老师的毛茸茸最新章节| 亚洲性生活视频| 国产精品高潮在线| 国产欧美日韩免费看aⅴ视频| 亚洲最大激情中文字幕| 毛片精品免费在线观看| 色777狠狠综合秋免鲁丝| 欧美性jizz18性欧美| 欧美精品精品精品精品免费| 一区二区在线视频播放| 中文字幕亚洲综合久久筱田步美| 91成品人片a无限观看| 日韩成人在线免费观看| 日本一本a高清免费不卡| 亚洲丝袜一区在线| 中文字幕国产精品久久| 日韩一区二区在线视频| 性色av一区二区咪爱| 亚洲人成欧美中文字幕| 国产精品日韩欧美综合| 欧美视频中文字幕在线| 91在线免费视频| 欧美性资源免费| 欧美电影免费观看电视剧大全| 不卡av日日日| 亚洲大胆人体视频| 黑人精品xxx一区一二区| 成人黄色大片在线免费观看| 亚洲老司机av| 日本一欧美一欧美一亚洲视频| 日韩美女毛茸茸| 欧美成人精品三级在线观看| 亚洲国产精彩中文乱码av在线播放| 97超碰国产精品女人人人爽| 亚洲国产欧美一区| 日本国产精品视频| 欧美中文在线观看| 国产一区二区三区丝袜| 国外成人在线视频| 国产91在线播放精品91| 成人国产精品久久久久久亚洲| 97香蕉久久夜色精品国产| 亚洲免费一在线| 欧美日韩国产综合新一区| 国产欧美日韩视频| 日本人成精品视频在线| 亚洲欧美国产一本综合首页| 欧美日本高清一区| 亚洲人a成www在线影院| 日韩精品中文字幕在线播放| 精品人伦一区二区三区蜜桃免费| 欧美高清视频免费观看| 少妇高潮久久77777| 欧美极品少妇与黑人| 国产精品久久久久免费a∨大胸| 亚洲人成电影网站| 欧美午夜女人视频在线| 中文字幕欧美日韩精品| 欧美肥婆姓交大片| 茄子视频成人在线| 国产精品国内视频| 97久久精品人搡人人玩| 韩国精品美女www爽爽爽视频| 亚洲国产精品小视频| 国产精品无码专区在线观看| 亚洲欧洲偷拍精品| 久久久精品2019中文字幕神马| 亚洲综合中文字幕在线观看| 国产精品精品视频一区二区三区| 欧美精品成人91久久久久久久| 精品夜色国产国偷在线| 91高清免费视频| 精品国模在线视频| 国产精品久久999| 69av在线视频| 国产欧美一区二区三区四区| 亚洲iv一区二区三区| 久久久久久国产三级电影| 欧美日韩久久久久| 久久的精品视频|