我又遇上问题咯,求助,在线等待,4点以前

rain_ok 2002-05-25 08:51:10
<%@ include file="opendb.jsp"%>
<%@ page contentType="text/html;charset=gb2312"%>
<%
java.lang.String strSQL; //SQL语句
String str_bg="#dfdfdf";

//if(Topic_type==null)
//{
//out.println("参数错误!");
//}
//else{
%>
<html>
<head>
<title>finder topic</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<STYLE type=text/css>A:link {
FONT-SIZE: 12px; COLOR: #0000ff; TEXT-DECORATION: none
}
A:visited {
FONT-SIZE: 12px; COLOR: #0000ff; TEXT-DECORATION: none
}
A:hover {
FONT-SIZE: 12px; COLOR: #ff9900; TEXT-DECORATION: underline
}
BODY {
FONT-SIZE: 12px; COLOR: #000000
}
TD {
FONT-SIZE: 12px; COLOR: #000000
}

</STYLE>

<body>
<TABLE cellSpacing=0 cellPadding=5 width=587 border=0 align="center">
<tr>
<td width="251" height='25' align=left bgcolor='#ffffff'>
<b>    <font color='red'>主题 </font></b>
</td>
<td width="97" height='15' align=center bgcolor='#ffffff'>
<b><font color='red'>作者</font></b> </td>
<td width="76" height='15' align=center bgcolor='#ffffff'>
<b><font color='red'>回复</font></b> </td>
<td width="123" height='15' align=right bgcolor='#ffffff'><b><font color='red'>时间</font></b></tr>
<%int intPageSize; //一页显示的记录数

int intRowCount; //记录总数

int intPageCount; //总页数

int intPage; //待显示页码
java.lang.String strPage;

int i,j,k; //设置一页显示的记录数

intPageSize = 10; //取得待显示页码

strPage = request.getParameter("page");
if(strPage==null){

//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage = 1;

} else{
//将字符串转换成整型

intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1; }
strSQL = "select count(*) from forum_topic";
//获取记录总数
sqlRst = sqlStmt.executeQuery(strSQL);
//执行SQL语句并取得结果集
sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前

intRowCount = sqlRst.getInt(1);

sqlRst.close(); //关闭结果集

intPageCount = (intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;

//设置获取数据SQL语句
String Topic_type=request.getParameter("Topic_type");
sqlRst=sqlStmt.executeQuery("select * from forum_topic where Topic_type=\'"+Topic_type+"\'and Is_first=1 order by time desc");


//从数据库中查询出所有留言,按留言时间的倒序查询
//将记录指针定位到待显示页的第一条记录上

i = (intPage-1) * intPageSize;

for(j=0;j<i;j++) sqlRst.next();

//显示数据

i = 0;
while(sqlRst.next())
{
String Topic_name=sqlRst.getString("Topic_name");
String UName=sqlRst.getString("UName");
Timestamp Time=sqlRst.getTimestamp("Time");
Date date_time=new Date(Time.getTime());
Time time_time=new Time(Time.getTime());
int Total_reply=sqlRst.getInt("Total_reply");
//得到输出的参数

if(str_bg.equals("#dfdfdf")){

str_bg = "#ffffff";
}
else{

str_bg = "#dfdfdf";}%>
<tr bgcolor="<%=str_bg%>">
<td height='25' align=left>   
<%out.println("<a href=\"view_topic.jsp?Topic_name="+Topic_name+"\">"+Topic_name+"</a>");%>
</td>
<td height='15' align=center> <%out.println(UName);%>
</td>
<td height='15' align=center><%out.println(Total_reply);%>
</td>
<td height='15' align=right><%out.println(""+date_time+" "+time_time+"");%></td>

</tr>
<% i++; } %><tr>

<td align=center colspan="4">

第<%=intPage%>页 共<%=intPageCount%>页

<%if(intPage<intPageCount){%>

<a href="finder.jsp?Topic_type=<%=Topic_type%>&page=<%=intPage+1%>">下一页</a><%
}

%>

<%if(intPage>1){%>

<a href="finder.jsp?Topic_type=<%=Topic_type%>&page=<%=intPage-1%>">上一页</a><%
//}
}
%>
</td></tr>
</table>
</body>
</html>
<%

//关闭结果集

sqlRst.close();

//关闭SQL语句对象

sqlStmt.close();


%>
分页出现问题,明明是一页的内容,但是它来了个第二页,是个空白页,请各位帮我看看,我看了好久也没弄明白是咋回事,谢谢
...全文
5 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rain_ok 2002-05-26
^_^,你也没睡觉那,我的问题还是没有弄好哦,但是我用了另一种方法了
回复
weidegong 2002-05-26
晚上大家的兴致都蛮高的嘛
回复
rain_ok 2002-05-25
江津没上?
回复
zijianyi 2002-05-25
2:0 安棋发挥的太差了........
回复
rain_ok 2002-05-25
我试试,球赛结束了?
回复
iamkangkang 2002-05-25


sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前
intRowCount = sqlRst.getInt(1);

????
回复
iamkangkang 2002-05-25
计算页数是这样的:
intPageCount = (intRowCount-1) / intPageSize + 1;
回复
zijianyi 2002-05-25
//显示数据

i = 0;
while(sqlRst.next())

觉得这个也有问题

//显示数据

i = 0;
while(sqlRst.next()&&i<intPageSize)
回复
rain_ok 2002-05-25
可是我在另外的一个文件也用这个方法,是成功的阿,就是这个
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=gb2312"%>

<%
java.sql.Connection sqlCon; //数据库连接对象

java.sql.Statement sqlStmt; //SQL语句对象

java.sql.ResultSet sqlRst; //结果集对象

java.lang.String strCon; //数据库连接字符串

java.lang.String strSQL; //SQL语句

int intPageSize; //一页显示的记录数

int intRowCount; //记录总数

int intPageCount; //总页数

int intPage; //待显示页码
java.lang.String strPage;

int i,j,k; //设置一页显示的记录数

intPageSize = 10; //取得待显示页码

strPage = request.getParameter("page");
if(strPage==null){

//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage = 1;

} else{

//将字符串转换成整型

intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1; }

//装载JDBC驱动程序
Class.forName("com.inet.tds.TdsDriver");
sqlCon= java.sql.DriverManager.getConnection("jdbc:inetdae7://localhost:1113/user_db?user=rain&password=");
//连接数据库
sqlStmt=sqlCon.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
strSQL = "select count(*) from leaveword";
//获取记录总数
sqlRst = sqlStmt.executeQuery(strSQL);
//执行SQL语句并取得结果集
sqlRst.next(); //记录集刚打开的时候,指针位于第一条记录之前

intRowCount = sqlRst.getInt(1);

sqlRst.close(); //关闭结果集

intPageCount = (intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;

//设置获取数据SQL语句

strSQL = "select * from leaveword order by time desc ";

//执行SQL语句并取得结果集

sqlRst =sqlStmt.executeQuery(strSQL);

//从数据库中查询出所有留言,按留言时间的倒序查询
//将记录指针定位到待显示页的第一条记录上

i = (intPage-1) * intPageSize;

for(j=0;j<i;j++) sqlRst.next();%>
<html>


<head>

<title>欢迎来到教改同学谈留言板</title>

</head>
<style type="text/css">
<!--
a { text-decoration:none}
-->
</style>


<body>

<p align=center><strong><font face="华文行楷" size="6" color="#336699">教改同学谈留言板</font></strong></p>

<table border="1" bordercolor="#FFFFFF" cellspacing="0" cellpadding="0" width=458 align=center bgcolor="#ddf7fb">

<%

//显示数据

i = 0;
while(sqlRst.next())
{
String UName=sqlRst.getString("UName");
String Email=sqlRst.getString("Email");
Timestamp Time=sqlRst.getTimestamp("Time");
Date date_time=new Date(Time.getTime());
Time time_time=new Time(Time.getTime());
//处理时间格式
String Content=sqlRst.getString("Content");
//得到留言信息各字段
%>



<!--定制输出表格样式-->
<tr><td >姓名:</td>
<td colspan="2"><%=UName%></td>
</tr>
<tr>
<td>Email:</td>
<td>
<%
if(Email!=null)
out.println("<a href=mailto:"+Email+">"+Email+"</a>");
//输出发电子邮件的链接格式
else out.println(" ");
%>
</td></tr>
<tr><td >时间:</td>
<td colspan="2">
<%
out.println(""+date_time+" "+time_time+"");
//输出时间
%></td>
</tr>
<tr><td >
内容:
</td>
<td colspan="2">
<%=Content%>
<!--输出留言内容-->
</td></tr>
<% i++; } %><tr>

<td align=center colspan="2">

第<%=intPage%>页 共<%=intPageCount%>页

<%if(intPage<intPageCount){%>

<a href="view_leaveword.jsp?page=<%=intPage+1%>">下一页</a><%

}

%>

<%if(intPage>1){%>

<a href="view_leaveword.jsp?page=<%=intPage-1%>">上一页</a><%

}
%>

</td>

</tr>
<tr>
<td colspan="2"> <div align="center"><a href="leaveword_default.htm">我要留言</a></div></td></tr>

</table> </body>

</html>
<%

//关闭结果集

sqlRst.close();

//关闭SQL语句对象

sqlStmt.close();

//关闭数据库

sqlCon.close();

%>




回复
rain_ok 2002-05-25
就算是只有一条记录也会出现两页阿。好奇怪
回复
zijianyi 2002-05-25
看球了,一会回来
回复
zijianyi 2002-05-25
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
这句好象有问题呀
intPageCount=intRowCount/intPageSize;
if(intRowCount%intPageSize!=0)
intPageCount+=1;
回复
rain_ok 2002-05-25
不明白阿,我的库里面的内容只有一页阿
回复
saintKnight 2002-05-25
肯定是当前页的数字出错了,是不是从有两页的页面转到只有一页内容的页面时出现这种情况的?说明前面的当前页没有复位
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告