郁闷我好几天的问题!!

eeeeeeeebmj 2005-04-19 05:10:47
数据库表格product_class
id name parent depth
1 aa 0 1
2 bb 1 2
3 cc 2 3
4 dd 0 1
5 ee 4 2
6 ff 5 3

前台显示的效果
类别id 类别名称 上级类别 编辑 删除
1 aa 无 编辑 删除
2 bb aa 编辑 删除
3 cc bb 编辑 删除
4 dd 无 编辑 删除
5 ee dd 编辑 删除
6 ff ee 编辑 删除
当点类别1一行的编辑的时候出现效果上级类别的一列为下拉框即dropdownlist
里面的形式为 无
aa
----bb
--------cc
dd
----ee
--------ff
我想问如果我上级类别选择dd,那么原来aa的深度就为2,bb的深度就为3,cc的深度就为4,而写aa的parent就为4了
这个程序应该怎么写,能否用数据库些个函数实现!!
...全文
119 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
eeeeeeeebmj 2005-04-21
  • 打赏
  • 举报
回复
还有哪位高手能帮忙解决一下!!
king2410 2005-04-21
  • 打赏
  • 举报
回复
to scauto(独孤编程)
你的方法也不行,建立的nametype字段只能表示单链的啊
id nametype name parent depth
1 ? aa 0 1
2 ? bb 1 2
3 ? cc 2 3
4 ? dd 2 3
5 ? ee 3 4
6 ? ff 4 4
7 ? gg 0 1
8 ? hh 7 2
这种情况下怎么办?
eeeeeeeebmj 2005-04-21
  • 打赏
  • 举报
回复
哪位高手能帮忙解决一下!!
qiqunet 2005-04-20
  • 打赏
  • 举报
回复


你以为你是小女子就了不起啦,很多人会为你买命?????

这个世界的人越来越可笑了,早知你是小女子,我就不回贴!!!


//////////////////////////////////////////////////////////////

回复人: scauto(独孤编程) ( ) 信誉:100 2005-04-19 17:25:00 得分: 0


你的分没有给够,所以高手门都不愿意回答

/////////////////////////////////////////////////////////////
eeeeeeeebmj 2005-04-20
  • 打赏
  • 举报
回复
还有谁能帮帮小女子吗??
qiqunet 2005-04-20
  • 打赏
  • 举报
回复



我来帮你顶一顶,其实是来帮自己,为自己所贴的贴子负责


我在此说明一下,我上面发的那段程序是错误的,因为编写时考虑得理想化了,就是认为每个父记录只有一个子记录的情况。所以错了







eeeeeeeebmj 2005-04-20
  • 打赏
  • 举报
回复
还有谁能帮帮小女子吗??
qiqunet 2005-04-19
  • 打赏
  • 举报
回复


注:上述程序没有调试,但大致代码就如此,

思路应该说是相当清晰的,就是一步步的找,找到找不到为止。

数据库我认为按原样就足够了,除非你要辨认它们是否属同组的元素,例如在做多组菜单时,就要象“scauto(独孤编程)”那样建表,既归组,又要记录组内的深度。




qiqunet 2005-04-19
  • 打赏
  • 举报
回复



这个问题其实没什么好郁闷的啊。不过,应该也没有什么捷径吧?


mySelectid=记录id=1的id

'读取parent的数据:
"select id,depth from table where id=" & selectid
rs.open sqlstr,conn,1,3
mydepth=rs("depth")+1
myWriteid=rs("id")
rs.close

'更改第一个子数据:
"select id,parent,depth from table where id=" & mySelectid
rs.open sqlstr,conn,1,3
mySelectid=rs("id")
rs("parent")=myWriteid
rs("depth")=mydepth
rs.update
rs.close

'搜索与第一个子记录相关的所有记录,并更新,直到没有子记录为止
do while true
"select id,parent,depth from table where parent=" & mySelectid
rs.open sqlstr,conn,1,3
if rs.eof and rs.bof then exit do
mydepth=mydepth+1
mySelectid=rs("id")
rs("depth")=mydepth
rs.update
rs.close
loop

scauto 2005-04-19
  • 打赏
  • 举报
回复
你那个表没有建立好,应该在建立一个nametype字段
id nametype name parent depth
1 1 aa 0 1
2 1 bb 1 2
3 1 cc 2 3
4 2 dd 0 1
5 2 ee 4 2
6 2 ff 5 3
这样你应该明白了吧
lightenvoy 2005-04-19
  • 打赏
  • 举报
回复
呵呵,是吧,下班了,明天再来看看 没有写的,要不明天我写个,郁闷啊,没时间啊
wxf0104 2005-04-19
  • 打赏
  • 举报
回复
其实很简单,你想的太复杂了,只要将aa那条记录的parent更新为dd的id就OK了,因为aa的id并没改变,所以bb,cc等就不需考虑。
不知道说的是否正确,仅供参考~~
scauto 2005-04-19
  • 打赏
  • 举报
回复
你的分没有给够,所以高手门都不愿意回答

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧