| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 624 人关注过本帖
标题:请前辈帮忙,关于 asp 循环嵌套
只看楼主 加入收藏
hutoo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-4-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请前辈帮忙,关于 asp 循环嵌套
新手学asp+access,求前辈帮忙........拜谢!!!

设想效果:1.嵌套查询生成表格
                2.以下很多  留空其实是想从内循环内得到的数据再处理,比如求和,取最大值之类
                  这个是不是需要在内循环建立数组?将数据传出来?还是另写sql直接查询?
         
出现问题:1.循环不能正常,运行后显示(103928+1 0 操作3)不停重复,报错超出系统负荷
                2.为什么直接进入了最内部循环,外边的都没有运行?
                3.循环进入死循环?
                4.网页显示调试部分出现乱码,浏览器修改用编码用gbk后变成显示内容乱码,调试部分可读,什么情况?

换个角度:1.如果直接用 SELECT * from sitetbl , zonetbl , farmtbl where sitetbl.zoneid=zonetbl.zoneid and zonetbl.farmid=farmtbl.farmid
                2.可以得到查询集,怎样处理会得到原设想效果呢?
                    比如按farmname排列,但farmname只显示一次,
                    farmname相同的某列area求和,
                    farmname相同的某列surplusdays取最大值
程序代码:
<!--#include file="inc/Conn.asp"-->
    <%
    dim rsfarm,rszone,rssite,b,c,crop
    set rsfarm=server.CreateObject("adodb.recordset")
    rsfarm.open "Select * From farmTbl",conn,1,3
    a=0
    %>
    <table>
    <tr height="60">
    </tr>
    <tr>
        <td>
        <table>
        <tr rowspan="11" height="60">
        <td>生产概况</td>
        </tr>
        <tr>
        <td height="30">林场名</td>
        <td height="30">工程名</td>
        <td height="30">工地名</td>
        <td height="30">面积/亩</td>
        <td height="30">人数</td>
        <td height="30">产率(吨/亩)</td>
        <td height="30">预产(吨)</td>
        <td height="30">现产/吨</td>
        <td height="30">完成率%</td>
        <td height="30">剩余工期(预计/天)</td>
        <td height="30">操作</td>
        </tr>                
    <%
    do while not rsfarm.eof
    a=a+1
    %>        
        <tr>
        <td height="30"><%=a%><%=rsfarm("farmName")%></td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">操作1</td>
            </tr>
    <%
    set rszone=server.CreateObject("adodb.recordset")
    rszone.open "Select * From zoneTbl Where farmID='" & rsfarm("farmID") & "'",conn,1,3
    if not(rszone.bof and rszone.eof) then
    b=0
    do while not rszone.eof
    b=b+1
    %>
        <tr>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30"><%=b%><%=rszone("zoneName")%></td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">操作2</td>
        </tr>

                    
    <%
    set rssite=server.CreateObject("adodb.recordset")
    rssite.open "Select * From siteTbl Where zoneID='" & rszone("zoneID") & "'",conn,1,3
    if not(rssite.bof and rssite.eof) then
    c=0
    do while not rssite.eof
    c=c+1
    %>
                    
        <tr>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30"><%=c%><%=rssite("zoneName")%></td>
        <td height="30"><%=rssite("area")%></td>
        <td height="30"><%=rssite("peopleNum")%></td>
        <td height="30"><%=rssite("proRate")%></td>
        <td height="30">
                    <%
            crop=0
            crop=rssite("area")*rssite("proRate")
            %>
            <%=crop%>
        </td>
        <td height="30">&nbsp;&nbsp;</td>
        <td height="30"><%=rssite("finishRate")%></td>
        <td height="30"><%=rssite("surplusdays")%></td>
        <td height="30">操作3</td>
        </tr>
                        
    <%
    rssite.movenext
    loop
    end if
    rssite.close
    set rssite=nothing
    %>
                
        
    <%
    rszone.movenext
    loop
    end if
    rszone.close
    set rszone=nothing
    %>
    <%
    rsfarm.movenext
    loop
    %>
        
        </table>
        </td>
        </tr>
        </table>
    
    <%
    rsfarm.close
    set rsfarm=nothing
    call CloseConn()
    %>

        </tr>
        </table>


[ 本帖最后由 hutoo 于 2014-4-18 07:57 编辑 ]
搜索更多相关主题的帖子: 最大值 网页 
2014-04-18 06:47
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:20 
不清楚楼主要达到什么结果?三个循环嵌套,结果是三个记录集记录数的乘积,有可能就是一个不小的数字。因此造成假死或内存溢出也就不奇怪了。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-04-18 20:00
hutoo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-4-18
收藏
得分:0 
回复 2 楼 hu9jj
其实就是一个很简单的三循环嵌套,一般情况是不会出现死循环的,不过后来检查,错不在循环,错在sql,现在正在解决不管什么错都别出现死循环。
2014-04-19 21:27
快速回复:请前辈帮忙,关于 asp 循环嵌套
数据加载中...
 
   



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

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