您的位置: 首页 > 技术文档 > 网络编程 > [ASP]把无限级分类生成数组
开发Wap中的随笔 回到列表 制作WAP留言本[ASP教程]
 [ASP]把无限级分类生成数组

作者:hubro 时间: 2005-10-28 文档类型:原创 来自:蓝色理想

第 1 页 [ASP]把无限级分类生成数组 [1]
第 2 页 [ASP]把无限级分类生成数组 [2]

把无限级分类循环出来确实是一件头疼的事情。
比如,我们要循环出一个SELECT,或一个TABLE,要写一大堆判断。
有没好点的办法呢?
我的做法是生成数组,可以重复调用,直接循环数组就行了。
为了方便,我把它写成了类。

class.asp

返回所有分类的数组,并按顺序排列
有4个属性:
set aa=new classlist
aa.id="id"//编号的名称
aa.classname="classname"//分类名称
aa.pid="pid"//父ID名称
aa.db_name="class"//表名
list=aa.arrylist()

<%
class classlist
private c_id
private c_db_name
private c_pid
private c_classname
public property let id(str)
   c_id = str
end property
public property let db_name(str)
   c_db_name = str
end property
public property let pid(str)
   c_pid = str
end property
public property let classname(str)
   c_classname = str
end property

dim list()

dim i,n
Private Sub Class_Initialize()'初始化变量
i=0
n=0
End Sub


public function classarry(thisid,pid)'取得下级ID
if pid>0 then
sql="select * from "&c_db_name&" where "&c_pid&"="&thisid
else
sql="select * from "&c_db_name&" where "&c_id&"="&thisid
end if
set rs_c=conn.execute(sql)
n=n+1

do while not rs_c.eof

list(0,i)=rs_c(c_id)'装入数组中
list(1,i)=rs_c(c_classname)
list(2,i)=n
'n=n+1
i=i+1
thisid=classarry(rs_c(c_id),1)'这里递归调用,直到最后一个子类

rs_c.movenext
loop
n=n-1
rs_c.close

end function

public function arrylist()'循环出所有根类
set rs_c=conn.execute("select count("&c_id&") from "&c_db_name)
lenght=rs_c(0)
rs_c.close
redim list(2,lenght)'设置数组
set rs1=conn.execute("select "&c_id&" from "&c_db_name&" where "&c_pid&"=0")
do while not rs1.eof
call classarry(rs1(c_id),0)
'n=1
rs1.movenext
loop
rs1.close
arrylist=list
end function

end class
%>

出处:蓝色理想
责任编辑:moby

上一页 下一页 [ASP]把无限级分类生成数组 [2]

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
制作WAP留言本[ASP教程]
[ASP]使用类,实现模块化
无限分类算法 js 的实现
[ASP]提高数据显示效率--缓存探幽
web关联菜单实现方法
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
疯狂的程序员 第五十回
疯狂的程序员 第四十九回
疯狂的程序员 第四十八回
疯狂的程序员 第四十七回
疯狂的程序员 第四十六回
疯狂的程序员 第四十五回
疯狂的程序员 第四十四回
疯狂的程序员 第四十三回
疯狂的程序员 第四十二回
疯狂的程序员 第四十一回
栏目最新 栏目最新列表
火星人的耳机
公司正式宣布创业失败
用corelDEAW 12打造唇膏
二行代码解决全部网页木马
一行代码解决iframe挂马
Photoshop制作星空爆炸效果
CorelDraw 12打造休闲裤
Firework如何画特殊的切角图形
Firework打造韩式风格的手提袋
flash实例:打造佛光效果
>> 分页 首页 前页 后页 尾页 页次:1/21个记录/页 转到 页 共2个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文现有 2 条评论 暂时没有人参与评分


ftingchn Publish at 2006-12-27 10:22:52
满足基本的需要何必搞得那么复杂
5do8 Publish at 2005-10-29 16:49:24
哈哈哈,参照hubro的的归思想,我不是说多次读取数据库不好么?那就只读珍贵第一次把结果放在一个数组里面,提示copy一个数组的归比较的,最后打印出树:
原始数据
:
11----:天上-----pid:0
2----:人间-----pid:0
4----:tcp处理-----pid:2
3----:http上的-----pid:2
5----:蓝色理想-----pid:3
10----:qq公司-----pid:4
7----:经典论坛-----pid:5
6----:blog群-----pid:5
14----:杀气朝天的blog-----pid:6
9----:后台区-----pid:7
8----:灌水区-----pid:7
12----:御花园-----pid:11
13----:御花园的牛-----pid:12

新的比较数组:
0----:天上-----pid:11
0----:人间-----pid:2
2----:tcp处理-----pid:4
2----:http上的-----pid:3
3----:蓝色理想-----pid:5
4----:qq公司-----pid:10
5----:经典论坛-----pid:7
5----:blog群-----pid:6
6----:杀气朝天的blog-----pid:14
7----:后台区-----pid:9
7----:灌水区-----pid:8
11----:御花园-----pid:12
12----:御花园的牛-----pid:13


打印结果:
11:天上-------
--------11:御花园:12
------------12:御花园的牛:13
2:人间-------
------------2:tcp处理:4
----------------4:qq公司:10
------------2:http上的:3
----------------3:蓝色理想:5
--------------------5:经典论坛:7
------------------------7:后台区:9
------------------------7:灌水区:8
--------------------5:blog群:6
------------------------6:杀气朝天的blog:14


呵呵,就是这么几行语句:
For tempii=0 To arrsize
 If data(2,tempii)=0  Then 
 response.write(data(0,tempii)&":"&data(1,tempii)&"-------<br/>")
 checkchild(data(0,tempii))
 End if
 Next
 Function checkchild(num)
 Dim ifunction
 n=n+1
For ui=0 To n
jj=JJ&"----"
Next  
For ifunction=0 To arrsize 
If tempdata(0,ifunction)=num   Then 
response.write(jj&tempdata(0,ifunction)&":<b>"&tempdata(1,ifunction)&"</b>:"&tempdata(2,ifunction)&"<br/>")
checkchild(tempdata(2,ifunction))
n=n-1
End If
Next 
End Function 

莫笑莫笑.完毕


在线测试效果:
http://www.5do8.com/net/test.asp
您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
大师之路--Photoshop 完全解析
《超越CSS》新书上市
Don't Make Me Think 第2版
HTML与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《设计师谈网页设计思维》
作品集 更多内容

Life 捷报网吧乐园 多耐宝洁具 形象插画 速涂 Megan 小作 羁绊