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

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP 无限级分类实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 159 ::
收藏到网摘: 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
%>