无限级分类数据库:
id classid title
id是这个分类的ID(自动编号)
classid 是上个分类的ID(父分类)
title 是栏目名称
假设我们这里有这些分类,我要限制父分类不能添加类别(也就是说每个栏目只能在最底层才能添加内容)
+一级栏目
+--二级栏目1
+--二级栏目2
+----三级栏目1
+----三级栏目2
+一级栏目2
+--二级栏目1-2
+一级栏目3
+--二级栏目1-3
+--二级栏目2-3
+----三级栏目1-2-3
以上假设最底层的分类分别是:三级栏目1、三级栏目2、二级栏目1-2、三级栏目1-2-3。哪位高手能写个函数来读取最底层的栏目?如需要更改或添加数据库的字段请一并详细指出。(详细写出代码并可行者,加200分)
ASP无限级分类中怎么判断是否是最底层的类别?
答案:4 悬赏:20 手机版
解决时间 2021-02-20 11:15
- 提问者网友:孤凫
- 2021-02-19 12:50
最佳答案
- 五星知识达人网友:过活
- 2021-02-19 13:01
楼主,你要求写出代码这个就不是三言两语搞得定了。。。
详细请看我最近开发的:www.ib2c.cn
采用了无限级分类,只能在最底层分类下才能添加商品
楼主你给的数据库字段并不足以达到要求,所以要加上几个字段
我的分类数据表的字段如下:
class_id '自动编号,同时是主索引
class_title '文本型,分类的名称
class_parentid '数字型,父节点的ID
class_parentname '文本型,父节点的名称
class_idpath '备注型,节点层次编号,以"/"号分隔
class_titlepath '备注型,节点层次名称编号,以"/"号分隔
class_order '节点排序
其中如果想要判断是不是最底层节点,只需判断在class_parentid中,当前选择的节点的ID是不是只有一条记录(因为如果在这个节点下有添加下级节点,则在class_parentid中肯定不止一条记录)
列了下我的数据库记录(为了能区分各这段,我用---来分隔各字段):
字段:
class_id---class_title---class_parentid---class_parentname---class_idpath---class_titlepath---class_order
数据库记录如下:
98---中国---0---顶级分类---0/98/---顶级分类/中国/---1
99---湖南省---98---中国---0/98/99/---顶级分类/中国/湖南省/---1
100---广东省---98---中国---0/98/100/---顶级分类/中国/广东省/---2
101---江西省---98---中国---0/98/101/---顶级分类/中国/江西省/---3
102---衡阳市---99---湖南省---0/98/99/102/---顶级分类/中国/湖南省/衡阳市/---1
104---湘潭市---99---湖南省---0/98/99/104/---顶级分类/中国/湖南省/湘潭市/---2
106---祁东县---102---衡阳市---0/98/99/102/106/---顶级分类/中国/湖南省/衡阳市/祁东县/---1
107---衡东县---102---衡阳市---0/98/99/102/107/---顶级分类/中国/湖南省/衡阳市/衡东县/---2
楼主,从上面的数据中你就可以看出,每个节点其class_idpath中,会有自己的class_id在内,所以这样的话你就可以通过class_idpath来查到,如果在class_idpath中有大于1条的记录存在,则肯定你选择的这个节点不是最底层节点(比如衡阳市,你可以看出,其class_id是102,而在class_idpath中,有好几条记录中存在102,还有class_parentid也是一样。。那么衡阳市这个节点就肯定不是最底层节点)
至于怎么去判断,楼主采用instr这个函数就行了
Instr(class_idpath,'/"&thexxid&"/')>0
其中的thexxid表示是你当前选择的这个节点的ID
补充:如果楼主存在其他问题,不防加我QQ:542940693,一起讨论哦(写这个无限级分类,我查了挺多资料,然后结合自己平时的一些经验,写了一整天才搞定的,自认为还是比较完美的一个解决办法了)
详细请看我最近开发的:www.ib2c.cn
采用了无限级分类,只能在最底层分类下才能添加商品
楼主你给的数据库字段并不足以达到要求,所以要加上几个字段
我的分类数据表的字段如下:
class_id '自动编号,同时是主索引
class_title '文本型,分类的名称
class_parentid '数字型,父节点的ID
class_parentname '文本型,父节点的名称
class_idpath '备注型,节点层次编号,以"/"号分隔
class_titlepath '备注型,节点层次名称编号,以"/"号分隔
class_order '节点排序
其中如果想要判断是不是最底层节点,只需判断在class_parentid中,当前选择的节点的ID是不是只有一条记录(因为如果在这个节点下有添加下级节点,则在class_parentid中肯定不止一条记录)
列了下我的数据库记录(为了能区分各这段,我用---来分隔各字段):
字段:
class_id---class_title---class_parentid---class_parentname---class_idpath---class_titlepath---class_order
数据库记录如下:
98---中国---0---顶级分类---0/98/---顶级分类/中国/---1
99---湖南省---98---中国---0/98/99/---顶级分类/中国/湖南省/---1
100---广东省---98---中国---0/98/100/---顶级分类/中国/广东省/---2
101---江西省---98---中国---0/98/101/---顶级分类/中国/江西省/---3
102---衡阳市---99---湖南省---0/98/99/102/---顶级分类/中国/湖南省/衡阳市/---1
104---湘潭市---99---湖南省---0/98/99/104/---顶级分类/中国/湖南省/湘潭市/---2
106---祁东县---102---衡阳市---0/98/99/102/106/---顶级分类/中国/湖南省/衡阳市/祁东县/---1
107---衡东县---102---衡阳市---0/98/99/102/107/---顶级分类/中国/湖南省/衡阳市/衡东县/---2
楼主,从上面的数据中你就可以看出,每个节点其class_idpath中,会有自己的class_id在内,所以这样的话你就可以通过class_idpath来查到,如果在class_idpath中有大于1条的记录存在,则肯定你选择的这个节点不是最底层节点(比如衡阳市,你可以看出,其class_id是102,而在class_idpath中,有好几条记录中存在102,还有class_parentid也是一样。。那么衡阳市这个节点就肯定不是最底层节点)
至于怎么去判断,楼主采用instr这个函数就行了
Instr(class_idpath,'/"&thexxid&"/')>0
其中的thexxid表示是你当前选择的这个节点的ID
补充:如果楼主存在其他问题,不防加我QQ:542940693,一起讨论哦(写这个无限级分类,我查了挺多资料,然后结合自己平时的一些经验,写了一整天才搞定的,自认为还是比较完美的一个解决办法了)
全部回答
- 1楼网友:長槍戰八方
- 2021-02-19 15:10
17027271
- 2楼网友:詩光轨車
- 2021-02-19 14:47
你好!
楼上的那个网站不错啊
希望对你有所帮助,望采纳。
- 3楼网友:时间的尘埃
- 2021-02-19 13:28
这类似于链表的数据结构。楼上的讲的很好啊。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯