ASP 無限級分類實(shí)現(xiàn)
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
[p]該例子演示了無限級分類的顯示和添加.只用一個數(shù)據(jù)表實(shí)現(xiàn)記錄無限級分類,關(guān)鍵是每條記錄都記錄了上一層類別的id(parentid),然后通過一個遞歸函數(shù)來不斷將類別顯示出來. [br]*大類1 [br]└二級小類1 [br]└三級小類1 [br]└四級小類1 [br]└五級小類1 [br]*大類2 [br]└二級小類2 [br]*大類3 [br]數(shù)據(jù)庫說明:數(shù)據(jù)庫db.mdb,classtable表的結(jié)構(gòu):classid類別id(自動增長) parentid 父級id 默認(rèn)為0 (0代表最高級) classname類別名,classdepth是為了記錄類別的級數(shù) ———————————————- [br]| classid| classname| parentid | classdepth | [br]———————————————- [br]主要代碼: [br]//先取出最高級(parentid=0)的分類 [br]<% [br]set conn=server.createobject("adodb.connection") [br]conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("db.mdb") [br]set rs1=server.createobject("adodb.recordset") [br]sql1="select * from classtable where parentid=0 order by classid" [br]rs1.open sql1,conn,1,1 [br]if rs1.eof or rs1.bof then [br]response.write"還沒分類!" [br]else [br]while not rs1.eof [br]id1=rs1("classid") [br]name1=rs1("classname") [br]response.write "*"&name1&"
" [br]parentid1=rs1("parentid") [br]call reclass(id1) [br]rs1.movenext [br]wend [br]end if [br]rs1.close [br]set rs1=nothing[/p] [p]sub reclass(id) [br]'遞歸調(diào)用函數(shù),生成一個類別代碼 [br]set rs=server.createobject("adodb.recordset") [br]sql="select * from classtable where parentid="&id [br]rs.open sql,conn,1,1 [br]i=1 [br]while not rs.eof [br]id0=rs("classid") [br]classname0=rs("classname") [br]parentid0=rs("parentid") [br]classdepth0=rs("classdepth") [br]brstr="" [br]for j=1 to classdepth0 [br]brstr=" "&brstr [br]next [br]response.write(brstr&"└"&classname0&" ") [br]call reclass(id0) [br]rs.movenext [br]i=i+1 [br]wend [br]rs.close [br]set rs=nothing [br]end sub [br]if request("a")="add" then [br]call add [br]end if [br]if request("name")<>"" then [br]%> [br]
該文章在 2010/7/13 22:13:16 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |