通辽做网站:ASP无限级分类中怎么判断是否是最底层的类别?

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 19:31:42
无限级分类数据库:
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分)

楼主,你要求写出代码这个就不是三言两语搞得定了。。。

详细请看我最近开发的: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,一起讨论哦(写这个无限级分类,我查了挺多资料,然后结合自己平时的一些经验,写了一整天才搞定的,自认为还是比较完美的一个解决办法了)

17027271

楼上的那个网站不错啊

这类似于链表的数据结构。楼上的讲的很好啊。