这样为什么不能实现贴子的分层?

huijunzi 2002-01-16 03:59:18
前面省略若干......
dim pad
pad=""
do while not rs.eof and howmanyrecs<rs.pagesize
dim tempid
tempid=rs(0)
response.write("<b><a href=display.asp?id="&tempid&" target='_blank'>"&rs(2)&"</a></b>("&rs(5)&"于"&rs(4)&")<br>")
dispchild tempid,pad
rs.movenext
howmanyrecs=howmanyrecs+1
loop
Conn.close
set Conn=nothing

function dispchild(pid,padstr)
set rs1= Server.CreateObject("ADODB.Recordset")
sql="select count(*) from market where pid="&pid
set rs1=Conn.Execute(sql)
if rs1(0)>0 then
dim pad1
pad1=padstr&"  "
sql="select * from market where pid="&pid&" order by id desc"
set rs1=Conn.Execute(sql)
do while not rs1.eof
dim tempid1
tempid1=rs1(0)
response.write(padstr&"<a href=display.asp?id="&tempid1&" target='_blank'>"&rs1(2)&"</a>("&rs(5)&"于"&rs1(4)&")<br>")
dispchild tempid1,pad1
rs1.movenext
loop
end if
end function

这样为什么不能实现贴子的分层,运行时贴子出现的顺序是对的,只是层次结构不正确!
也就是说缩进量不正确,其余的是对的
...全文
144 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
huijunzi 2002-01-21
  • 打赏
  • 举报
回复
不行
还是不能达到我要求的效果啊
playmud 2002-01-17
  • 打赏
  • 举报
回复
行不行?说句话!
playmud 2002-01-16
  • 打赏
  • 举报
回复
你想实现的是下面这样子吧?
<%

i=1
response.write i&"<a href=display.asp?id=2 target='_blank'>2</a><br>"
dispchild(i)
function dispchild(i)

dim pad1

i=i+1

response.write i&"<a href=display.asp?id=2 target='_blank'>2</a><br>"
if i<10 then
dispchild(i)

end if
response.write i&"<a href=display.asp?id=2 target='_blank'>2</a><br>"
end function

%>
freefeel 2002-01-16
  • 打赏
  • 举报
回复
看看你的程序,如果记录下面没有相关的记录了,也不会把他写出来!对吧!
我是这样理解的
函数()
判读改纪录有没有下面的(相关的)纪录
如果有
写出该纪录
然后调用函数(递归)
如果没有
只写出该纪录,不递归了
结束判断
这个过程中,你保存空格的变量,一直在增加空格,我觉得你应该每一次地归都用一个不同的变量纪录空格数。
你可以这样想,每一次递归的调用都代表着深度的增加,所以同样的深度可以用一个值表示
如:第一层递归用l2表示,第二层用l3表示,然后相应的输出空格。
freefeel 2002-01-16
  • 打赏
  • 举报
回复
你的程序执行起来将会非常慢
你应该在function的最后吧
recordset清除
freefeel 2002-01-16
  • 打赏
  • 举报
回复
请看
<%

i=1
response.write i&"<a href=display.asp?id=2 target='_blank'>2</a><br>"
dispchild(i)
function dispchild(i)

dim pad1

i=i+1

response.write i&"<a href=display.asp?id=2 target='_blank'>2</a><br>"
if i<10 then
dispchild(i)

end if
end function

%>
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
悠然兄
不是你说的这个错误
关健在那个递归上,比如说,我本来贴子应该是这样子:
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDSAFDSAFDS
他却显示成这个样子
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDS
应该是递归回推的时候有一点问题
谢谢你
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
悠然兄
不是你说的这个错误
关健在那个递归上,比如说,我本来贴子应该是这样子:
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDSAFDSAFDS
他却显示成这个样子
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDS
应该是递归回推的时候有一点问题
谢谢你
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
悠然兄
不是你说的这个错误
关健在那个递归上,比如说,我本来贴子应该是这样子:
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDSAFDSAFDS
他却显示成这个样子
SDAFDSAFDSAFDSAFDS
DSAFSDAFSDAFDSAFDSA
SDAFDSAFDSAFSDAFDSAF
SDAFSDAFDSAFDS
应该是递归回推的时候有一点问题
谢谢你
freefeel 2002-01-16
  • 打赏
  • 举报
回复
<%
bb=""
response.write "<b><a href=display.asp?id=2 target='_blank'>2<br>"
dispchild(bb)
function dispchild(aa)

dim pad1

pad1=aa&"  "

response.write pad1&"<a href=display.asp?id=2 target='_blank'>2</a>"

end function

%>
这段程序就可以!
freefeel 2002-01-16
  • 打赏
  • 举报
回复
response.write "  <a href=display.asp?id="&tempid1&" target='_blank'>"&rs1(2)&"</a>("&rs(5)&"于"&rs1(4)&")<br>"
看看可以了吗?
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
愿听其详......
freefeel 2002-01-16
  • 打赏
  • 举报
回复
可能是response.write 空格的问题
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
推一下
huijunzi 2002-01-16
  • 打赏
  • 举报
回复
更正一下,我上面搞错了应该是这样
前面省略若干......
dim pad
pad=""
do while not rs.eof and howmanyrecs<rs.pagesize
dim tempid
tempid=rs(0)
response.write("<b><a href=display.asp?id="&tempid&" target='_blank'>"&rs(2)&"</a></b>("&rs(5)&"于"&rs(4)&")<br>")
dispchild tempid,pad
rs.movenext
howmanyrecs=howmanyrecs+1
loop
Conn.close
set Conn=nothing

function dispchild(pid,padstr)
set rs1= Server.CreateObject("ADODB.Recordset")
sql="select count(*) from market where pid="&pid
set rs1=Conn.Execute(sql)
if rs1(0)>0 then
dim pad1
pad1=padstr&"  "
sql="select * from market where pid="&pid&" order by id desc"
set rs1=Conn.Execute(sql)
do while not rs1.eof
dim tempid1
tempid1=rs1(0)
response.write(pad1&"<a href=display.asp?id="&tempid1&" target='_blank'>"&rs1(2)&"</a>("&rs(5)&"于"&rs1(4)&")<br>")
dispchild tempid1,pad1
rs1.movenext
loop
end if
end function

这样为什么不能实现贴子的分层,运行时贴子出现的顺序是对的,只是层次结构不正确!
也就是说缩进量不正确,其余的是对的

28,406

社区成员

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

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