关于查询结果的显示问题

这两天的工作是项目中"综合模块"的系统日志部分,内容包括查询和显示,其实都不算太难,无非就是查询+分页。但偏偏 就遇到了一个问题 ,令我困扰不已。现将问题叙述如下:

页面分为两部分,上部分为查询输入,下部分为数据显示。

在未输入查询条件前,页面下部分显示的是所有数据(当然也是分页)。

当查得所需数据时,由于数据量过大,也需分页显示。

比如查询结果分为两页显示,在点击显示下一页内容后,本应该是跳转至查询所得结果的第二页,但是问题却出现了,系统是跳转至了未查询数据的第二页!!!!

代码如下:

< form action = " xtrz.jsp "  method = " post " >
      
< table width = " 500 "  align = " center "  cellpadding = " 0 "  cellspacing = " 1 "   class = " table " >
      
< tr  class = " upTd " >
        
< td height = " 25 "  colspan = " 4 "  align = " center " > 系统日志 </ td >
      
</ tr >
      
< tr >   
        
< td align = " center " > 开始时间 </ td >
        
< td align = " center " >< input type = " text "  name = " starttime "  value = ' <c:out value="<%=request.getParameter("starttime")%>"/> '   /></ td >
        
< td align = " center " > 结束时间 </ td >
        
< td align = " center " >< input type = " text "  name = " stoptime "  value = ' <c:out value="<%=request.getParameter("stoptime")%>"/> '   /></ td >
      
</ tr >
      
< tr >
        
< td height = " 25 "  colspan = " 4 "  align = " center " >
          
< input type = " submit "  name = " query "  value = " 查询 " >& nbsp; & nbsp; & nbsp; & nbsp;
          
< input type = " reset "  name = " reset "  value = " 重置 " ></ td >
      
</ tr >
</ table >
</ form >
< br  />  
 
< table width = " 500 "  align = " center "  cellpadding = " 0 "  cellspacing = " 1 "   class = " table_B " >
  
< tr  class = " upTd " >
    
< td height = " 22 "  align = " center " > 级别 </ td >
    
< td align = " center " > 时间 </ td >
    
< td align = " center " > 模块 </ td >
    
< td align = " center " > 操作 </ td >
  
</ tr >  
  
<%
  Connection conn
= Database.getConnection();
  
int  perpg = 15 // 每页显示条数
   int  pg = 1 ;   // 当前页数记录
   int  count = 0 ;   // 取得数据数目
   int  count2 = 0 ;   // 记录条数
   int  pagenum;   // 总页数
  String pgsql = "" ;
  String sql
= "" ;
  String status
= "" ;   // 查询条件

  
if (request.getParameter( " starttime " ) != null   &&   ! request.getParameter( " starttime " ).equals( "" )) {
        status
= status + "  and logdate > cast(' " + request.getParameter( " starttime " ) + " ' as datetime) " ;
  }

  
if (request.getParameter( " stoptime " ) != null   &&   ! request.getParameter( " stoptime " ).equals( "" )) {
        status
= status + "  and  logdate < cast(' " + request.getParameter( " stoptime " ) + " ' as datetime) " ;
  }

 
  pgsql
= " select count(*) as num from TB_LOG4J where priority = 'info'  " + status;  
  
// System.out.println(pgsql);
  
  ResultSet res
= Database.SQLQuery(conn,pgsql);
  
if (res.next()) {   // 查得数据条数
    count = res.getInt( " num " );
    count2
= count;
  }

  res.close(); 
  
  
for (pagenum = 0 ;count > 0 ;pagenum ++ ) {   // 分页
     count = count - perpg;
  }

  
  
if  (request.getParameter( " page " ) != null   &&   ! request.getParameter( " page " ).equals( "" )) {
      pg
= Integer.parseInt(request.getParameter( " page " ));
    
if  (pg > pagenum) {
        pg
= pagenum;
    }

    
else   if (pg <= 1 ) {
        pg
= 1 ;
    }

  }
 
  sql 
=   " select top 15 * from TB_LOG4J where logdate not in (select top  " + (pg - 1 ) * perpg + "  logdate from TB_LOG4J where priority = 'info'  " + status + "  order by logdate desc) and priority='info'  " + status + "  order by logdate desc " // sql server
  
// System.out.println(sql);
  res = Database.SQLQuery(conn,sql);
  
  
while  (res.next()) { %>
   
< tr >
      
< td height = " 22 "  align = " center " ><%= res.getString( " priority " ) %></ td >
    
< td align = " center " ><%= res.getString( " logdate " ) %></ td >
    
< td align = " center " ><%= res.getString( " class " ) %></ td >
    
< td align = " center " ><%= res.getString( " msg " ) %></ td >
  
</ tr >
  
<% }

    res.close();
    conn.close();
  
%>
 
</ table >
 
< table width = " 500 "  border = " 0 "  align = " center "  cellpadding = " 0 "  cellspacing = " 1 " >
    
< tr >
      
< td >
    
<%   if  (pagenum > 1   &&  pg != 1 { %>< a href = " xtrz.jsp?page=1 &&status=<%=("status")%> " > 首页 </ a ><%  }   %>
    
<%   if  (pagenum > 1   &&  pg > 1 { %>< a href = " xtrz.jsp?page=<%=pg-1%>&&status=<%=("status")%> " > 前一页 </ a >   <%  }   %>
    
<%   if  (pagenum > 1   &&  pg < pagenum)  { %>< a href = " xtrz.jsp?page=<%=pg+1%>&&status=<%=("status")%> " > 下一页 </ a >   <%  }   %>
    
<%   if  (pagenum > 1   &&  pg != pagenum)  { %>< a href = " xtrz.jsp?page=<%=pagenum%>&&status=<%=("status")%> " > 尾页 </ a ><%  }   %>
      
      共
<%= count2 %> 条记录 & nbsp; /& nbsp; <%=  pagenum  %> 页,当前是 <%=  pg  %> </ td >
    
</ tr >
  
</ table >




说明:数据库系SQL server,语言为Jsp。

总结原因:1、页面传参方式错误,理由是status并未传至下一页
                    2、定义变量错误,原因不明

进度:尚未解决!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值