纯ASP实现无限级分类

有客户给我们建议,能不能将产品的分类做的更方便一点,能自己来分类~
   于是参考了网上的资料和方法,写了一个简单的分类。不过没有加入排序这个功能。

   做个简单说明:
   1。数据表:ZJ_Article

      数据库字段:typeid,rootid,levels,order,fatherid,myid

     2。rootid 根(顶级)类顺序+1

     3。order 为同一深度的类别排序

   4。levels 记录该类别的深度层次。根类深度为0,一级栏目深度为1,一次类推。

   5。fatherid 记录当前类别的父类id(myid)

   6。myid 当前类别id 顺序+1

     7。筛选记录集时,排序为“ order by rootid,orderid,levels,typeid asc ”,否则会出现同一深度的类别排列在一起,而不是按照树形结构排列。

   附上源代码(右键另存为):
下载文件 点击下载此文件


    在获取当前类别完整路径时,用下面的代码:

sub  getpath(ID)
    set rs_path=server.CreateObject("adodb.recordset")
    sql="select * from ZJ_Article where typeid="&ID
    rs_path.open sql,conn,1,1
    
    if  rs_path("fatherid")<>0 then
        call getroot(rs_path("fatherid"))
        typenames=typenames&"<b>&</b>"&rs_path("titlename")
                end if
    rs_path.close
    set rs_path=nothing
end sub

sub getroot(MyID)
    set rs_root=server.CreateObject("adodb.recordset")
    sql="select * from ZJ_Article where myid="&MyID
    rs_root.open sql,conn,1,1
    if rs_root("fatherid")<>0 then
        call getroot(rs_root("fatherid"))
        typenames=typenames&"<b>&</b>"&rs_root("titlename")
    end if
    rs_root.close
    set rs_root=nothing
end sub

       在需要显示类别完整路径时
     call getpath(rs("typeid"))



[本日志由 Moonight 于 2006-07-31 01:29 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 翻唱
评论: 3 | 引用: 5778 | 查看次数: 65374
回复回复Moonight[2006-07-31 01:30 PM | del]
右键另存为就可以了
回复回复aming[2006-07-27 08:02 AM | del]
asdfas,不能下载
回复回复土渣渣[2006-04-28 01:39 PM | del]
太专业,看不懂.明白两个单词end if
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭