你是否遇到需要把无限级分类循环出来,是不是很头痛。

比如,要循环出一个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()

?>

类:classlist

复制代码 代码如下:

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

%>

实例测试:

表class

字段

id:自动编号

classname:名称

pid:父ID

文件名:test.asp

复制代码 代码如下:

Set conn=Server.CreateObject("ADODB.connection")

Set Rs = Server.CreateObject("ADODB.Recordset")

StrDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ="

StrDSN = StrDSN & Server.MapPath("test.mdb")

conn.Open strDSN

function ins(num)

str=""

for ii=1 to num

str=str&"|-"

next

ins=str

end function

set aa=new classlist

aa.id="id"

aa.classname="classname"

aa.pid="pid"

aa.db_name="class"

list=aa.arrylist()

response.write "

ID 名称

for j=0 to ubound(list,2)

response.write "

"&list(0,j)&""&list(1,j)&""&list(2,j)&""

next

response.write "

"

'response.write list(1,3)

%>

response.write ins(list(2,i))

response.write list(1,i)%>

循环结果:

www.jquerycn.cn/code/class/test.asp

基本可以满足通常的需要啦。

php数组无限文类,php把无限级分类生成数组的类相关推荐

  1. IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...

    使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...

  2. PHP如何读取txt文档域名集,并且生成数组/随机显示一个

    最近有朋友反馈我一个问题看我是否可以帮忙解决:需求就是网页需要跳转代码,用PHP写,读取一个域名集合包(也就是TXT文档),里面方着很多域名,让每访问一次随机跳转一个域名,怕是违法应用,没有答应帮忙, ...

  3. php递归 返回数组,php 递归 无限级分类并返回数组的例子

    /** * 递归 无限级分类 返回数组 * link:www.jquerycn.cn * date:2013/2/21 */ $conn = mysql_connect('localhost','ro ...

  4. php mysql怎么实现,使用php与mysql怎么实现一个无限级分类

    使用php与mysql怎么实现一个无限级分类 发布时间:2020-12-25 15:25:14 来源:亿速云 阅读:84 作者:Leah 本篇文章为大家展示了使用php与mysql怎么实现一个无限级分 ...

  5. php mysql 一级分类_无限级分类 for PHP+Mysql

    一个PHP项目要用到分类,但不确认是4级还是需要用到5级,想着干脆做成无限级分类好了. 一开始想是按以前一样,数据库建4个值,如下: id: 自增   |   pid: 父类ID   |  xid: ...

  6. 【JetPack】ViewBinding 视图绑定组件 ( 启用模块 | 视图绑定定制 | 绑定类名称生成规则 | 绑定类字段生成规则 | 绑定类获取根视图 | 绑定类获取布局组件 )

    文章目录 I . 视图绑定组件简介 II . 视图绑定 ViewBinding 使用前提 ( Android Studio 3.6 ) III . 视图绑定组件启用 IV . 定制视图绑定 ( 启用视 ...

  7. GDCM:生成标准SOP类的测试程序

    GDCM:生成标准SOP类的测试程序 GDCM:生成标准SOP类的测试程序 GDCM:生成标准SOP类的测试程序 #include "gdcmDefs.h" #include &q ...

  8. 使用idea Scripted Extensions生成entity实体类groovy

    jpa自定义模板 import com.intellij.database.model.DasTable import com.intellij.database.model.ObjectKind i ...

  9. php如何对 mysql 中text类型拆分存入一个数组_PHP递归实现无限级分类,可选返回字符串和数组...

    正 文: 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 递归,简单的说就是 ...

最新文章

  1. (chap4 IP协议) 多播和子网掩码
  2. java.lang.StackTraceElement类
  3. asp.net操作Excel总结
  4. Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
  5. 烂泥:通过vsphere给esxi添加本地硬盘
  6. Tomcat是如何将请求一步步传递到我们编写的HttpServlet类中的
  7. 面试官:Spring创建好的单例对象存在线程安全问题吗?
  8. iOS-属性字符串添加下划线、删除线
  9. 百度搜索大数据:“摆摊技巧”搜索热度暴涨655%;中国电信:将逐步关闭3G网络业务;IntelliJ IDEA新版发布|极客头条...
  10. 华为主导 5G 入网之争?
  11. Linux 上的数据可视化工具
  12. HTML学习总结(4)——表格/块/内联元素/iframe/颜色/脚本/实体
  13. Jasperreports5.6支持PDF微软雅黑字体
  14. SQL Server 创建链接服务器
  15. linux命令行连接蓝牙音箱,树莓派4b连接蓝牙音箱/耳机播放音乐 命令行
  16. BUG的跟踪管理、定位BUG
  17. 创新工场和海豚浏览器宣讲会启示
  18. 海康监控如何设置STMP邮箱报警
  19. n*m的格子中正方形个数和长方形个数
  20. 2017-2018-2 《密码与安全新技术》第一周作业

热门文章

  1. flowable 启动流程到完成所有任务之间的数据库变化
  2. 前后端分离,如何解决跨域(代理模式)、路由拦截(进入页面需要登录)以及请求拦截(登录TOKEN失效)等问题(初学者)
  3. 超详细前端开发案例:品优购商场项目(四)
  4. html-文本框和单选框
  5. ecshop模板中使用php,使ecshop模板中可引用常量的实现方法
  6. java mvel_MVEL实现java直接根据公式计算结果
  7. mysql的存储过程放在哪里_mysql存储过程求解,错误在哪里?
  8. MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
  9. java的serversocket_Java ServerSocket 实现聊天室功能(简易版)
  10. Linux服务器版本鼠标,安装GPM给Linux虚拟控制台提供配置鼠标支持