程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 基於ACCESS數據庫的純asp論壇制作心得(樹形結構)

基於ACCESS數據庫的純asp論壇制作心得(樹形結構)

編輯:關於Access數據庫
感覺做一個論壇不像想象中的那麼容易,但也不像想象中的那麼復雜:),經過4天的浴血奮戰,終於從對論壇制作一無所知到今天的論壇數據結構和組織形勢初步確定,中間參考了sunamd,bigeagled,廖家遠等的思路,並得到了賴皮王子,hooke,bigeagle大蝦的熱心幫助,謹以此文一並表示感謝。
bigeagle的文章采用了sql的存儲過程來實現,但現實中支持的免費站點本來就少,支持的免費站點更少,支持sql的免費站點。。。反正我沒見過,哪位知道告訴我一聲:),所以我等窮人只有用access了,我就是采用+Access的形式實現了類似china的論壇。。閒話少說,言歸正傳。
先說一下的結構,主要有兩個表,一個存儲用戶信息user,一個存儲論壇文章及信息mytext。用戶信息就不用多說了,主要就是mytext論壇文章的組織,要實現相同主題的帖子組織在一塊、跟貼緊隨父貼、後發帖居上、更重要的是要認清父貼,否則會造成一層回復一律排在一起,二層回復排在一起,三層。。。如下:
根貼
回復1:根貼
回復2:根貼
回復:回復1:根貼
。。。。
所以這裡有幾個關鍵的字段:
id(自動):自動編號(作用:顯示後來居上)
rootid(整型):根貼的id(作用:實現相同主題的帖子排在一塊)
level(整型):貼子的層數(作用:顯示的時候實現縮進)
orderid(單精):相同主題帖子排序的基數(作用:相同主題帖子排序的先後依據,即防止出現上例的情況)
fatherid(整型):父貼id,貼子的血緣關系
排序的sql語句:
select * from mytext orderby rootid desc,orderid,id desc

實現顯示縮進(修正後的"不用遞歸實現樹形結構.."):
level=0
response.write "<ul>"
do while not rs.eof
if rs("level")<level then
for i=rs("level") to level-1
response.write "</ul>"
next
end if
if rs("level")>level then
response.write "<ul>"
end if
response.write "<li>主題:。。</li>"
level=rs("level")
rs.movenext
loop
response.write "</ul>"
%>
注意:原"不用遞歸實現樹形結構..."文章有誤,這是修改後的代碼.

另外有一點經驗要注意:就是在單精類型數據傳值的時候,如:orderid,request上來的數據要先replace(orderid," ","+"),再csng轉換,不然會報告"類型不匹配",我一開始百思不得其解,後來發現在傳值的時候必定會把單精數據"+"弄丟,變成空格,所以要先替換再轉型.

以上只是我個人的看法,如果有錯誤之處或有更好的方法歡迎交流[email protected],大家可以到211.90.159.61(開放

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved