注册 登录
编程论坛 ASP技术论坛

ASP钳套问题(已解决 感谢madpbpl yms123 附解决方法)

月夜 发布于 2007-09-14 23:48, 1127 次点击

嵌套问题解决办法
演示例子:
<%
Call openDB()
sql="select * from bbstit"
rs.open sql,conn,1,1
If Not rs.eof Then
While Not rs.eof
%>

版块分类:
< =rs("tittype")%>
版块:
<%
Dim sql2,rs2
set rs2=Server.CreateObject("adodb.recordset")
sql2="select * from bbstype where tid="&rs("id")
rs2.open sql2,conn,1,1
if not rs2.eof Then
While Not rs2.eof
%>
<%=rs2("bbsname")%>
<%
rs2.movenext
wend
rs2.close
set rs2=nothing
end if
%>

<%
rs.movenext
Wend
Call closeDB()
End If
%>
2次查询和循环 谢谢大家的帮助!

[此贴子已经被作者于2007-9-15 19:12:04编辑过]

18 回复
#2
madpbpl2007-09-15 00:06
sql="select tittype from bbstit"
rs.open sql,conn,1,1
sql="select * from bbstype"
rs.open sql,conn,1,1
开始这就错了,(假设斧openDB()里没有set rs)
set rs=Server.CreateObject("adodb.recordset")
sql="select tittype from bbstit"
rs.open sql,conn,1,1
set rs1=Server.CreateObject("adodb.recordset")
sql1="select * from bbstype"
rs1.open sql,conn,1,1
后面的自己调整一下,试试这样行不行。

[此贴子已经被作者于2007-9-15 0:17:32编辑过]

#3
月夜2007-09-15 00:15
恩 我试试 谢谢
#4
月夜2007-09-15 15:28

还是不行啊 朋友们Helpme~~``

#5
madpbpl2007-09-15 15:34
不知道楼上想实现什么样的效果?
<%=rs("tittype")%>
<%=rs("bbsname")%>
上面的两个各来自哪个表?
两个表之间有什么关系?
最后想说的是为什么不用一个表来实现呢?(个人看法)
#6
月夜2007-09-15 15:44

我完整的介绍一下吧 CONN.ASP数据库调用页 TOP和FOOT是首尾页

我想做个论坛 论坛首页需要调用论坛大区分类 论坛版块分类 而且都需要循环出来

但是我做了大区分类 并且能够循环出来 版块分类 就无法循环出来 就是ASP的嵌套问题

我想显示的就是 一个页面内显示所有分类大区 并显示每个区的所有版块 就是这样 谢谢

CONN内容为:
<%
dim sql
dim rs
dim conn
Dim connString
sub openDB()
set conn=Server.Createobject("ADODB.Connection")
connString="DRIVER={Microsoft Access Driver (*.mdb)};"_
& "DBQ="&Server.MapPath("../yueye.mdb")
conn.open connString
set rs=server.createobject("ADODB.Recordset")
end sub

sub closeDB()
If IsObject(conn) Then
if not(conn is nothing) then
set rs=nothing
conn.close
set conn=nothing
end if
End If
end Sub%>
- - -- - - - -- - - - -- - - - - -以下为论坛首页内容 -- - - - -- - - - -- - - - -- - - -- - - - --
<!--#include file="conn.asp"-->
<!--#include file="../top.asp"-->
<link href="../images/css.css" rel="stylesheet" type="text/css" />
<br><br>
<%
Call openDB()
sql="select tittype from bbstit"
rs.open sql,conn,1,1
If Not rs.eof Then
While Not rs.eof
%>

<table width="760" height="80" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="109" bgcolor="#FFFFFF">版块分类:</td>
<td width="540" bgcolor="#FFFFFF"><%=rs("tittype")%></td>
<td width="103" bgcolor="#FFFFFF">时间</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">版块:</td>
<td bgcolor="#FFFFFF">
</td>
<td bgcolor="#FFFFFF">文章</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">版主:</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
</table>
<br>
<%

rs.movenext
Wend
Call closeDB()
End If
%>
<br><br>
<!--#include file="../foot.html"-->

#7
月夜2007-09-15 15:44
我把错误代码删除了 现在是正常显示分类的大区 请问如何显示每个大区的所有版块
#8
madpbpl2007-09-15 15:48
<%=rs("tittype")%>
<%=rs("bbsname")%>
上面的两个各表示哪个表?
两个表之间有什么关系?
先回答一下这些
主要说明一下两个表的关系就可以了

[此贴子已经被作者于2007-9-15 15:50:12编辑过]

#9
月夜2007-09-15 15:52
我数据库中 分别有2个表 一个是储存论坛大区分类 一个是储存版块分类以及版块内容
2个表是关联的 大区的ID 是版块内的TID
<%=rs("tittype")%>是分类大区中的 大区标题
<%=rs("bbsname")%>是版块分类中的 版块标题
#10
madpbpl2007-09-15 16:00
以下是引用月夜在2007-9-15 15:52:55的发言:
我数据库中 分别有2个表 一个是储存论坛大区分类 一个是储存版块分类以及版块内容
2个表是关联的 大区的ID 是版块内的TID
<%=rs("tittype")%>是分类大区中的 大区标题
<%=rs("bbsname")%>是版块分类中的 版块标题

这点我明白,我的意思是你这两个表没有任何关系,都是独立的?
下一页我来贴代码

#11
madpbpl2007-09-15 16:03

<!--#include file="conn.asp"-->
<%
Call openDB()
sql="select tittype from bbstit"
rs.open sql,conn,1,1
If Not rs.eof Then
While Not rs.eof
%>

<table width="760" height="80" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="109" bgcolor="#FFFFFF">版块分类:</td>
<td width="540" bgcolor="#FFFFFF"><%=rs("tittype")%></td>
<td width="103" bgcolor="#FFFFFF">时间</td>
</tr>
<%
set rs1=Server.CreateObject("adodb.recordset")
sql1="select * from bbstype"
rs1.open sql1,conn,1,1
if not rs1.eof then
while not rs1.eof
%>
<tr>
<td bgcolor="#FFFFFF">版块:</td>
<td bgcolor="#FFFFFF"><%=rs1("bbsname")%></td><!--此处为bbstype表内论坛版块名称-->
<td bgcolor="#FFFFFF">文章</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">版主:</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
<%
rs1.movenext
wend
rs1.close
set rs1=nothing
end if
%>
</table>
<br>
<%

rs.movenext
Wend
Call closeDB()
End If
%>



[此贴子已经被作者于2007-9-15 17:59:08编辑过]

#12
月夜2007-09-15 16:26

都是独立的

#13
madpbpl2007-09-15 17:24

11楼贴给你的不行吗?

#14
月夜2007-09-15 17:28

我修改了一下 因为查询条件是大区表内的ID 等于版块表内的TID
你的少了一个while我也加上了 不加不好使 加上后也是提示错误 但是不是缺少while语句了
错误提示:
错误类型:
ADODB.Recordset (0x800A0CC1)
在对应所需名称或序数的集合中,未找到项目。
/bbs/bbsindex.asp, 第 29 行

<!--#include file="conn.asp"-->
<!--#include file="../top.asp"-->
<link href="../images/css.css" rel="stylesheet" type="text/css" />
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" background="../images/top_001_r1_c9_r4_c2.jpg">
<tr>
<td valign="top"><table width="892" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="28" valign="top" bgcolor="#FFFFFF"><img src="../images/top_001_r1_c9_r3_c3.jpg" width="28" height="662"></td>
<td width="840" valign="top" bgcolor="#FFFFFF"><div align="center">
<%
Call openDB()
sql="select tittype from bbstit"
rs.open sql,conn,1,1
If Not rs.eof Then
While Not rs.eof
%>

<table width="760" height="80" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="109" bgcolor="#FFFFFF">版块分类:</td>
<td width="540" bgcolor="#FFFFFF"><%=rs("tittype")%></td>
<td width="103" bgcolor="#FFFFFF">时间</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">版块:</td>
<td bgcolor="#FFFFFF">
<%
set rs1=Server.CreateObject("adodb.recordset")
sql1="select * from bbstype where tid='"&rs("id")&"'"
rs1.open sql,conn,1,1
if not rs1.eof Then
While Not rs1.eof
%>
<%=rs("bbsname")%>
</td>
<td bgcolor="#FFFFFF">文章</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">版主:</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">&nbsp;</td>
</tr>
<%
rs1.movenext
wend
rs1.close
set rs1=nothing
end if
%>
</table>
<%

rs.movenext
Wend
Call closeDB()
End If
%>

</div></td>
<td width="24" valign="top" bgcolor="#FFFFFF"><div align="right"><img src="../images/top_001_r1_c9_r3_c6.jpg" width="23" height="662"></div></td>
</tr>
</table></td>
</tr>
</table>
<!--#include file="../foot.html"-->

#15
yms1232007-09-15 17:47
以下是引用月夜在2007-9-15 15:44:49的发言:
我把错误代码删除了 现在是正常显示分类的大区 请问如何显示每个大区的所有版块

数据库中分类的大区和所有版块应该是有关系的吧?数据库关于这个操作的两个表都有哪些字段?

#16
madpbpl2007-09-15 17:47

sorry,是我的错误,29行是哪一行呀?
我在11楼做调整

#17
月夜2007-09-15 17:54

回楼主大人 大区表内的ID=版块表内的TID 需要调用的标题是大区表(bbstit)标题字段为(tittype)版块表(bbstype)标题字段(bbsname)

#18
yms1232007-09-15 17:59

楼主的意思是想做想这个论坛的样子大分类里有各个版块的分类?

#19
月夜2007-09-15 19:12
谢谢热心版主
1