| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1202 人关注过本帖
标题:从数据库中读取数据,怎么就进入了死循环呢
只看楼主 加入收藏
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
 问题点数:0 回复次数:9 
从数据库中读取数据,怎么就进入了死循环呢

现有表1和表2,表中存放的是大类的名字,表2中存放的是大类及相应的小类的名字,要根据表1的大类的名字从表2中读取相应的小类的名字,可总是进入死循环,代码如下:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%
set rs_qiyebc=server.createobject("adodb.recordset")
sqlqiyebc="select * from BigClass_down"
rs_qiyebc.open sqlqiyebc,conn,1,1
bcx=4
%>
<%do while not rs_qiyebc.eof%>
<tr>
<td><%=cutstr(rs_qiyebc("BigClassName"),11)%></td>
</tr>
<%
BigClassName=rs_qiyebc("BigClassName")
rs_qiyebc.movenext
if x=4 then exit do
loop
%>
<%
set rs_qiye3=server.createobject("adodb.recordset")
sqlqiye3="select * from SmallClass_down where BigClassName=" & BigClassName & ""

rs_qiye3.open sqlqiye3,conn,1,1
x3=0
%>
<%do while not rs_qiye3.eof%>

<tr>
<td><%=cutstr(rs_qiye3("SmallClassName"),11)%></td>
</tr>
<%
rs_qiye3.movenext
x3=x3+1
if x3=4 then exit do
loop
%>
</table>
请问那里有错啊

搜索更多相关主题的帖子: 数据库 
2006-07-05 16:39
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 

要根据表1的大类的名字从表2中读取相应的小类的名字??

你不觉得你的这个程序本身就有问题的吗?


http://www./
2006-07-05 16:43
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 
那怎么写 啊

男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-07-05 16:44
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 
就是先把表1中的大类列出来,在把每个大类对应的小类列出来,请各位高手帮个忙,指点一下

男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-07-05 16:51
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 
<%
rs_qiye3.movenext
x3=x3+1
if x3=4 then exit do
loop
%>
把红色的两句去掉就脚本超时,加上可以调试通,但大类可以显示出来,不能把小类名字显示出来,斑竹帮忙指点一下啊

[此贴子已经被作者于2006-7-5 17:16:33编辑过]


男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-07-05 17:14
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
小类的输出应该是在在类的循环中,而不是独立出来的,自己先想一下,我要下班喽

http://www./
2006-07-05 17:20
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 

问题已经解决,把
sqlqiye3="select * from SmallClass_down where BigClassName=" & BigClassName & ""改为:
sqlqiye3="select * from SmallClass_down where BigClassName='"&BigClassName&"'"
就OK 了,但我还是不太明白,两者有什么区别啊?多谢斑竹的关注


男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-07-05 17:33
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
加''的是因为它是字符而不加的一般为数字

http://www./
2006-07-05 17:36
乱弹琴
Rank: 1
等 级:新手上路
威 望:1
帖 子:1665
专家分:0
注 册:2006-3-7
收藏
得分:0 
小类名字就是字符,原来是这样啊,以后就知道了,再次感谢!

男人的謊言可以騙女人的壹夜! 女人的謊言可以騙男人的壹生!
2006-07-05 17:48
icecool
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:20
帖 子:1216
专家分:1376
注 册:2005-3-14
收藏
得分:0 

第二个查询和循环应在第一个查询的循环里面,

不然第一个循环结束,才开始第二个查询,

这时你的BigClassName=rs_qiyebc("BigClassName"),只是第一个查询的最后一条的值,

<%
set rs_qiyebc=server.createobject("adodb.recordset")
sqlqiyebc="select * from BigClass_down"
rs_qiyebc.open sqlqiyebc,conn,1,1
bcx=4

do while not rs_qiyebc.eof %>

<%=cutstr(rs_qiyebc("BigClassName"),11)%>


<%
BigClassName=rs_qiyebc("BigClassName") '第一个查询的结果
set rs_qiye3=server.createobject("adodb.recordset")
sqlqiye3="select * from SmallClass_down where BigClassName='" & BigClassName & "'"
rs_qiye3.open sqlqiye3,conn,1,1
x3=0
do while not rs_qiye3.eof %>



<td><%=cutstr(rs_qiye3("SmallClassName"),11)%></td>

<%
rs_qiye3.movenext
x3=x3+1
if x3=4 then exit do
loop
%>


<%rs_qiyebc.movenext
if x=4 then exit do
loop
rs_qiyebc.close
set rs_qiyebc=nothing
%>



中间的HTML自已调整了

[此贴子已经被作者于2006-7-5 19:14:25编辑过]


http://toorup.3v.do
loading...
2006-07-05 19:12
快速回复:从数据库中读取数据,怎么就进入了死循环呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050693 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved