关于查询结果的显示问题

原创 2007年09月26日 11:57:00

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

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

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

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

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

代码如下:

< 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、定义变量错误,原因不明

进度:尚未解决!!!

相关文章推荐

PHP连接MySQL查询结果中文显示乱码问题

我们首先假设数据库中采用的编码为UTF-8 这时我们在PHP页面中应当首先添加 此处charset的值utf-8必须与文件保存时的编码类型一样 之后在数据库查询前添加 ...

关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)

相信用过hibernate的兄弟们都会因为多表复杂查询后,为返回的结果如何组装到一个VO中而烦恼不已。我也不停的为此而烦恼,但是在看了hibernate的transform后,感觉这个方法还挺管用的。...

TP3.2.3使用page分页类对查询结果进行分页时的问题

TP3.2.3使用page分页类对查询结果进行分页时的问题 最近在完成公司的任务的时候遇到了一个小问题,因为以前没遇到过,所以浪费了很多时间,下面把遇到的问题和解决方法和大家分享一下,避免大家踩坑。...

关于hibernate纯sql查询返回结果集的问题(hbm.xml中不写多表关联)

相信用过hibernate的兄弟们都会因为多表复杂查询后,为返回的结果如何组装到一个VO中而烦恼不已。我也不停的为此而烦恼,但是在看了hibernate的transform后,感觉这个方法还挺管用的。...

pgsql + group by + count()统计结果为零的内容不显示问题

问题:(pgsql)要查询newpro.users 中的各个organization下对应的今天注册的用户数量? 不用连接查询时: 由于在newpro.users 表中对时间限制为今天进行...

C生成exe文件,在命令行执行,无显示结果的问题

随便编写一个C语言程序,如下即可: #include "stdio.h" void main(){ printf("Welcome to C World!/n");/*n...

使用Spring Cache + Redis + Jackson Serializer缓存数据库查询结果中序列化问题的解决

应用场景我们希望通过缓存来减少对关系型数据库的查询次数,减轻数据库压力。在执行DAO类的select***(), query***()方法时,先从Redis中查询有没有缓存数据,如果有则直接从Redi...

ibatis分组查询结果的返回参数绑定问题解决方案

这次需求是从两个表里取出数据。最开始是在dao层中直接取出一张表中的所有记录,因为一张表对应一个实体类,这样取出所有记录,一些逻辑上的业务可以在程序中去处理,这样虽然导致代码量比较大,但是是比较容易理...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于查询结果的显示问题
举报原因:
原因补充:

(最多只允许输入30个字)