当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP 无限级分类实现

ASP
Asp+Sql 对数据库的各种操作
ASP:6行代码实现无组件上传
ASP中几种分页显示的比较
ASP中数据库调用中常见错误的现象和解决
ASP实用技巧:强制刷新和判断文件地址
asp全站防止注入的代码
ASP如何获取客户端真实IP地址
ASP实现可显示和隐藏的树型菜单
如何用ASP获取真实IP地址
ASP与SQL数据库连接代码
拒绝攻击 万能Asp防注入代码
草根站长成长计划:跟我学新云采集入门(2)
ASP技巧:提高使用Request集合的效率
Asp用存储过程实现数据分页
做网页时常用的ASP函数
Asp编码优化技巧八则
ASP中Cache技术的应用
用ASP封IP的方法,防止固定IP垃圾留言
ASP实现一行多列显示方法实例程序
ASP实现动态添加表单内容的实例程序

ASP 无限级分类实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 37 ::
收藏到网摘: n/a

该例子演示了无限级分类的显示和添加.只用一个数据表实现记录无限级分类,关键是每条记录都记录了上一层类别的ID(parentid),然后通过一个递归函数来不断将类别显示出来. *大类1
└二级小类1
└三级小类1
└四级小类1
└五级小类1
*大类2
└二级小类2
*大类3
数据库说明:数据库db.mdb,classTable表的结构:classid类别ID(自动增长) parentid 父级ID 默认为0 (0代表最高级) classname类别名,classdepth是为了记录类别的级数 ———————————————-
| classid| classname| parentid | classdepth |
———————————————-
主要代码:
//先取出最高级(parentid=0)的分类
<%
set conn=server.createobject(”adodb.connection”)
conn.open ”Provider=Microsoft.Jet.Oledb.4.0;data source=”&server.MapPath(”db.mdb”)
set rs1=server.createobject(”adodb.recordset”)
sql1=”select * from Classtable where parentid=0 order by classid”
rs1.open sql1,conn,1,1
if rs1.eof or rs1.bof then
response.write”还没分类!”
else
while not rs1.eof
id1=rs1(”classid”)
name1=rs1(”classname”)
response.write ”*<a href='class.asp?id=”&id1&”&name=”&name1&”‘>”&name1&”</a><br>”
parentid1=rs1(”parentid”)
call reclass(id1)
rs1.movenext
wend
end if
rs1.close
set rs1=nothing

sub reclass(id)
‘递归调用函数,生成一个类别代码
set rs=server.createobject(”adodb.recordset”)
sql=”select * from classtable where parentid=”&id
rs.open sql,conn,1,1
i=1
while not rs.eof
id0=rs(”classid”)
classname0=rs(”classname”)
parentid0=rs(”parentid”)
classdepth0=rs(”classdepth”)
brstr=”"
for j=1 to classdepth0
brstr=” ”&brstr
next
response.write(brstr&”└<a href='class.asp?id=”&id0&”&name=”&classname0&”‘>”&classname0&”</a><br>”)
call reclass(id0)
rs.movenext
i=i+1
wend
rs.close
set rs=nothing
end sub
if request(”a”)=”add” then
call add
end if
if request(”name”)<>”" then
%>
<table width=”80%” align=”center” cellpadding=”0″ cellspacing=”0″>
<form action=”class.asp?a=add&id=<%=request(”id”)%>” method=”post”>
<tr>
<td> </td>
<td>在<font color=”#FF0000″><%=request(”name”)%></font>添加小类</td>
</tr>
<tr>
<td>类别名:</td>
<td><input name=”classname” type=”text” id=”classname”></td>
</tr>
<tr>
<td> </td>
<td><input type=”submit” name=”Submit” value=”提交”></td>
</tr>
</form>
</table>
<%end if
sub add '添加类别
id=request(”id”)
classname=request(”classname”)
set rs=server.createobject(”adodb.recordset”)
rs.open ”select parentid,classdepth from classtable where classid=”&id,conn,1,1
parentid=rs(0)
classdepth=rs(1)+1
rs.close
set rs=nothing
sql=”INSERT INTO classtable (classname,parentid,classdepth) values ('”&classname&”‘,”&id&”,”&classdepth&”)”
conn.execute sql
response.Write”<script>alert('添加成功!');location.href='class.asp';</script>”
end sub
%>