寻高人解决超难问题:读取数据

mymhcb 2010-04-19 11:58:36
id neirong pid cid
1 将积极 0 0
2 Serge 0 0
3 将积饭否极 1 0
4 Ser热管ge 0 3

……

以上是数据库表内容结构,现在我要这样读取数据:
按ID读取内容,一个内容一行,并显示序号;(类似原始贴)
如果有pid 等于 id 的显示在 相应id 的内容行下;(类似原始贴的跟帖)
如果有cid 等于 pid 的显示在 相应pid 的内容行下;(类似原始贴的跟帖的回复贴)

显示效果类似新浪微博。

代码该怎么写呢?

包租婆说过能解决这个问题的人是万中无一,你能帮我解决吗??
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
number123456 2010-04-28
  • 打赏
  • 举报
回复
set Rs = Server.CreateObject("adodb.recordset")
set Re = Server.CreateObject("adodb.recordset")
set Rd = Server.CreateObject("adodb.recordset")
Rs.open "select * from 表 where pid=0 and cid=0",conn,1,1'第一步,查询主题
i = 1
while not Rs.eof
Response.write i
Re.open "select * from 表 where pid="&rs("id"),conn,1,1'第二步,查跟贴
e= 1
while not Re.eof
response.write e
Rd.open "select * from 表 where cid="&Re("id"),conn,1,1'第三步,查跟贴的回贴
d = 1
while not Rd.eof
response.write d
Rd.movenext
d = d + 1
wend
Rd.close

Re.movenext
e = e + 1
wend
Re.close

Rs.movenext
i = i + 1
wend
Rs.close
mymhcb 2010-04-21
  • 打赏
  • 举报
回复


那有快的方法吗??

[Quote=引用 9 楼 number123456 的回复:]
如果只你要求的这三种情况,不需要递归,


VBScript code
set Rs = Server.CreateObject("adodb.recordset")
set Re = Server.CreateObject("adodb.recordset")
set Rd = Server.CreateObject("adodb.recordset")
Rs.open "sele……
[/Quote]
aliang 2010-04-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 number123456 的回复:]
如果只你要求的这三种情况,不需要递归,


VBScript code
set Rs = Server.CreateObject("adodb.recordset")
set Re = Server.CreateObject("adodb.recordset")
set Rd = Server.CreateObject("adodb.recordset")
Rs.open "sele……
[/Quote]

正解
number123456 2010-04-21
  • 打赏
  • 举报
回复
如果只你要求的这三种情况,不需要递归,

set Rs = Server.CreateObject("adodb.recordset")
set Re = Server.CreateObject("adodb.recordset")
set Rd = Server.CreateObject("adodb.recordset")
Rs.open "select * from 表 where pid=0 and cid=0",conn,1,1'第一步,查询主题
while not Rs.eof

Re.open "select * from 表 where pid="&rs("id"),conn,1,1'第二步,查跟贴
while not Re.eof

Rd.open "select * from 表 where cid="&Re("id"),conn,1,1'第三步,查跟贴的回贴
while not Rd.eof
Rd.movenext
wend
Rd.close

Re.movenext
wend
Re.close

Rs.movenext
wend
Rs.close
当然,这样查速度很慢
mymhcb0 2010-04-21
  • 打赏
  • 举报
回复
????????????????
y1260405289 2010-04-19
  • 打赏
  • 举报
回复
mymhcb0 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mz48602 的回复:]
晕!二楼的写法算比较简单的了,如果这个你也搞不明白的话
给你说dv算法你就更不明白了,
方法是写一个函数在函数中自己调用自己
[/Quote]

呵呵。。。dv ? 动网?
mz48602 2010-04-19
  • 打赏
  • 举报
回复
晕!二楼的写法算比较简单的了,如果这个你也搞不明白的话
给你说dv算法你就更不明白了,
方法是写一个函数在函数中自己调用自己
mymhcb0 2010-04-19
  • 打赏
  • 举报
回复
诚心请教。
不耐烦 2010-04-19
  • 打赏
  • 举报
回复
递归~
mymhcb0 2010-04-19
  • 打赏
  • 举报
回复
思路很好。。可还是写不出。。。。
aliang 2010-04-19
  • 打赏
  • 举报
回复
给你点思路吧,代码你自己写
'======1、读取主题帖子数据
sql='....where pid=0 and cid=0'
...
while not rs.eof
'======2、取出跟帖
sql='....where pid='&rs("id")
while not rs1.eof
'======3、取出回复帖
。。。。。。。。。。
sql='....where cid='&rs2("pid")
while not rs3.eof
。。。。。。
rs3.movenext
wend
rs2.movenext
wend
...
rs.movenext
wend

28,390

社区成员

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

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