标题:ASP查询结果显示在指定的日期内,高手指点下
只看楼主
dengtaotao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-9-26
结帖率:0
已结贴  问题点数:20 回复次数:2 
ASP查询结果显示在指定的日期内,高手指点下
系统数据库里有一百位老师
需要设计一个选择上课老师的页面
该页面要按照老师的ID排序,分别显示出这一百名老师未来20天的上课记录,如现在是10月1号要显示出1号至20号的上课记录,A老师10月1号上哪几节课,2号上哪几节课,3号上哪几节课,如果有一天没有课程就显示无上课记录,依此类推,请高手指点一下.
 
目前我的设计是先通过老师的ID循环
然后再for循环日期
查询该日期该名老师有哪些上课记录,如没有就显示无上课记录
这样一个大循环,用来循环老师ID
在大循环里面再有一个小循环查询老师对应的上课记录
每次小循环就要一条SQL语句
一个页面要进行数据库操作一千多次,所以非常慢,打开要几十秒,现在希望有更好的方法实现.
我写的语句在下面:
 
     <% Dim sqlzdzy2,rszdzy2
    sqlzdzy2="select * from userS   order by id asc"
  set rszdzy2=server.CreateObject("adodb.recordset")
        rszdzy2.open sqlzdzy2,conn,1,2
  %>
            
              <%
  do while not rszdzy2.eof  '大循环按照老师的ID显示所有老师
  %>

<div id="div<%=rszdzy2("id")%>"> '这里是一个层,当下拉框选择该老师姓名时,只显示该老师的上课记录
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#E6FFE6">
      
        <tr>
          <td height="25" colspan="2"  align="left" bgcolor="#FFE188"><b><%=rszdzy2("zname")%>上课安排记录</b></td>
        </tr>
        <tr>
        <% dim dateabb,dateaaa,datebbb
  dateabb=1
  datebbb=DateAdd("d",20, now()) '这里是设置小循环当前日期加20天,超过就跳出小循环
do while dateaaa<datebbb
  dateaaa=DateAdd("y", dateabb, date)
  dateabb=dateabb+1
  %>
          <td width="150"  align="center" bgcolor="#EEEEEE"><%=rszdzy2("zname")%>老师<%=dateaaa%></td>
          <td  height="25" align="left">
          <% dim sqltj,rstj,km_skdateA
 km_skdateA=Year(Date)&"-"&Month(Date)&"-"&Day(dateaaa)'设置日期为当前循环日期
   sqltj="select * from bf_skap where  km_skls='"&rszdzy2("id")&"' and km_skdate=#"&CDate(km_skdateA)&"#"   '查询数据库显示该老师ID下当前日期是否有上课记录
          set rstj=server.CreateObject("adodb.recordset")
    rstj.open sqltj,conn,1,2
          If rstj.Eof And rstj.Bof Then
  %>
        没有上课记录!
        <%
     else
            do while not rstj.eof
   
   %>
        【<%=rstj("km_sksjAS")%>:<%=rstj("km_sksjAF")%>--<%=rstj("km_sksjBS")%>:<%=rstj("km_sksjBF")%> 】
        <%
   rstj.movenext
            loop
   set rstj=nothing
            end if
     %>          </td>
        </tr>
           <%  loop '小循环结束
     dateabb=0
     dateaaa=0
        %>
        
      </table></div>
              <%rszdzy2.movenext
   loop  '大循环结束
   set rszdzy2=nothing %></td>
    <tr>
      <td> </td>
    </tr>
  </table>
搜索更多相关主题的帖子: 数据库 大循环 记录 课程 
2013-09-26 10:53
dengtaotao
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-9-26
得分:0 
有二个表,一个是老师信息数据表
另外一个就是老师上课的记录数据表
这个页面就是添加新的课程给老师
但同时要查看哪些老师在哪个时间段有空,所以才要显示未来15天的所有老师上课记录,以便选择哪位老师上课,并且填写上课时间是老师有空的时间段
2013-09-26 10:59
ysf0181
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:55
帖 子:914
专家分:2385
注 册:2006-10-4
得分:20 
rs.open"select * from biao",conn,1,1
do while not rs.eof
   if rs("riqi") > riqi11 and rs("riqi") < riqi22 then '日期比较要用日期函数也可以的。cdate()转为日期
      您要做的事     
   end if
rs.movenext
loop
rs.close

ASP讨论QQ群:251346273
2013-09-28 15:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-421111-1-1.html




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

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