ASP 無(wú)限級(jí)分類實(shí)現(xiàn)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[p]該例子演示了無(wú)限級(jí)分類的顯示和添加.只用一個(gè)數(shù)據(jù)表實(shí)現(xiàn)記錄無(wú)限級(jí)分類,關(guān)鍵是每條記錄都記錄了上一層類別的id(parentid),然后通過(guò)一個(gè)遞歸函數(shù)來(lái)不斷將類別顯示出來(lái). [br]*大類1 [br]└二級(jí)小類1 [br]└三級(jí)小類1 [br]└四級(jí)小類1 [br]└五級(jí)小類1 [br]*大類2 [br]└二級(jí)小類2 [br]*大類3 [br]數(shù)據(jù)庫(kù)說(shuō)明:數(shù)據(jù)庫(kù)db.mdb,classtable表的結(jié)構(gòu):classid類別id(自動(dòng)增長(zhǎng)) parentid 父級(jí)id 默認(rèn)為0 (0代表最高級(jí)) classname類別名,classdepth是為了記錄類別的級(jí)數(shù) ———————————————- [br]| classid| classname| parentid | classdepth | [br]———————————————- [br]主要代碼: [br]//先取出最高級(jí)(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"還沒(méi)分類!" [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ù),生成一個(gè)類別代碼 [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ò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |