标题:[求助]分页那里有问题.改一下
只看楼主
rtc
Rank: 2
等 级:新手上路
威 望:4
帖 子:590
专家分:0
注 册:2007-6-6
 问题点数:0 回复次数:11 
[求助]分页那里有问题.改一下

<%
dim records_pp '存储每页的新闻数
records_pp=5
dim total_pages '总的页数
dim page '当前页码
dim tatal_records
rem 获取页码
page=request.QueryString("p")
if isnumeric(page) then
page=cint(page)
else
page=1
end if
if page=0 then page=1 end if
if page<0 then page=1 end if
%>
<%
set rs=server.CreateObject("adodb.recordset")
sql="select*from liuyanban order by date desc"
rs.open sql,cn,1,3
total_pages=(rs.recordcount-1) \ records_pp + 1

if page>total_pages then page=total_pages
for i=1 to (page-1)*records_pp
rs.movenext
next
tatal_records=rs.recordcount
%>

<%for i= 1 to records_pp

if rs.eof then exit for
%>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#f0f0f0">
<tr>
<td width="130" height="130"><div align="center"><img src="" width="110" height="117" alt="" /></div></td>
<td width="370" align="left" valign="middle"><table width="370" border="0" cellpadding="0" cellspacing="0" class="titleCopy">
<tr>
<td>留言人:<%=rs("name")%></td>
</tr>
<tr>
<td>签写日期:<%=rs("date")%></td>
</tr>
<tr>
<td>联系方式:<%=rs("lx")%></td>
</tr>
<tr>
<td>留言内容:<%=rs("word")%></td>
</tr>
<tr>
<td><span class="titleCopy2">[回复内容]<%=rs("reword")%></span></td>
</tr>
</table>

</td>
</tr>
</table>


</td>
</tr>
<tr>
<td height="30"><div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="9" align="center" valign="middle"></td>
</tr>
</table>
<%

rs.movenext
next
rs.close
set rs=nothing
cn.close
set cn=nothing
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="40" align="center" valign="middle" class="titleCopy"><p><img src="pic/22.jpg" width="450" height="20" vspace="5" /><br />
[共<%=total_pages%>页]
 [当前第<%=page%>页] 
<a href="guestbook.asp?p=1">首页</a> 
<a href="guestbook.asp?p=<%=page-1%>">上一页</a> 
<a href="guestbook.asp?p=<%=page+1%>">下一页</a> 
<a href="guestbook.asp?p=<%=tatal_page%>">尾页</a></p>
</td>
</tr>
</table>

这是我的分页
觉得有点奇怪!!!!!!!!!!!

搜索更多相关主题的帖子: page dim records end 
2007-07-12 16:13
udbyygy
Rank: 1
等 级:新手上路
威 望:2
帖 子:226
专家分:0
注 册:2007-6-26
得分:0 
你把错误信息也搞上来啊,找起来也方便

2007-07-12 16:25
rtc
Rank: 2
等 级:新手上路
威 望:4
帖 子:590
专家分:0
注 册:2007-6-6
得分:0 
没有错误,.
但是我按尾页的时候有点怪怪.

就是如果我一页显示5条.而当我直接按尾页才一页记录.
但是我按尾页的时候却显示5条, 加上最前4条.
和直接一页一页按到尾页就正常
不知道为什么
2007-07-13 14:38
qhscqb
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-2-3
得分:0 
你的total_page赋值有问题,怎么直接不用rs.pagecount

编程快乐,快乐编程! 没有最好,只有更好!
2007-07-13 14:47
qhscqb
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-2-3
得分:0 

我个人认为这种分页算法不太好,还是用recordset对象的pagesize、pagecount、absolutepage三个属性好.


编程快乐,快乐编程! 没有最好,只有更好!
2007-07-13 14:49
rtc
Rank: 2
等 级:新手上路
威 望:4
帖 子:590
专家分:0
注 册:2007-6-6
得分:0 

没用.
发一下你的代码!!!!!!!!!

2007-07-14 12:26
udbyygy
Rank: 1
等 级:新手上路
威 望:2
帖 子:226
专家分:0
注 册:2007-6-26
得分:0 

[QUOTE]<%
set conn=server.createobject("adodb.connection")
conn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("abc.mdb")
set ro=server.createobject("adodb.recordset")
ro.open"select * from uuuu",conn,1,1
aa=(ro.recordcount+9)\10 '这是共几页的页数,每页10条记录,可以改,如20条记录每页 ....+19)\20
dim a '''a是用来定位的
a=request.querystring("a")/1
if a="" then a=0 ''设定初值,move(0)表示从第一条记录读起
if a<0 then a=0
if a>(aa-1)*10 then a=a-10 ''如果是20条每页就减20

%>
<table>
<%
ro.movefirst'''每次从第一条开始
ro.move(a)'''''然后跳到第几条
for i=1 to 10 '每页显示10条
%>
<tr><td><%=ro("yong")%></td><TD><%=RO("CSNY")%></TD></tr>
<%
ro.movenext
if ro.eof then exit for
next
%>
</table>
<a href="aa.asp?a=0">首页</a>
<a href="aa.asp?a=<%=a-10%>">上一页</a>
<a href="aa.asp?a=<%=a+10%>">下一页</a>
<a href="aa.asp?a=<%=(aa-1)*10%>">尾页</a>
<h4>共<%=aa%>页</h4>
<h4>第<%=a/10+1%>页</h4>[/QUOTE]
这是我写


2007-07-14 12:36
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 

[CODE]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--#include file="CONDB.inc"-->
<!--引用数据库连接文件-->
<!--#include file="Cls\WebSiteSetInf.asp"-->
<%
'声明数据库记录集对象
Dim rsano
Dim oWebI
'创建数据库记录集对象
Set rsano=Server.CreateObject("ADODB.Recordset")
'设定数据库记录集游标类型
rsano.cursortype=3
'打开记录集对象
rsano.Open "select * From ANOUCE ORDER BY AnnounceTheDate DESC",con
'设定每页显示记录数
rsano.pagesize=25
'得到请求的页号
page=clng(request("page"))
IF request("page")<>"" then
page=clng(request("page"))
Else
page=1
End IF
IF page<1 Then page=1
If page>rsano.pagecount Then page=rsano.pagecount
rsano.absolutepage=page
'网页样式初始化代码
Dim PageStyleT
Set oWebI=New WebSetInf
Set PageStyleT=New PageStyle
Call QueryStyle("网站公告页面",PageStyleT)
%>
<title><%=oWebI.WebName%>-网站公告页面</title>
<!--去除超连接下划线样式表和字体大小设定代码-->
<style type="text/css">
<!--
<%=PageStyleT.StyleString%>
-->
</style>
<STYLE type=text/css>
A {
TEXT-TRANSFORM: none; TEXT-DECORATION: none
}
UNKNOWN {
TEXT-DECORATION: underline
}
.style22 {font-size: 12px}
.style16 {font-size: 14px}
BODY {
background-color: <%=PageStyleT.BackGround%>;
}
</STYLE>
</head>
<BODY>
<table width="294" height="46" border="0" cellspacing="0">
<tr>
<td width="338"><div align="center" class="style22">公告标题</div></td>
<td width="95"><div align="center" class="style22">发布日期</div></td>
</tr>
<%
'定义循环变量
dim iPage
For iPage=1 to rsano.Pagesize
'recno=(page-1)*rsano.pagesize+ipage记录编号计算公式
Response.Write("<tr>")
Response.write("<td><span class=style16><a href=announceview.asp?anbh="&rsano.Fields(0).Value&" target=_self>"&rsano.Fields(1).Value&"</a></span></td>")
Response.Write("<td><span class=style22>"&FormatDateTime(rsano.Fields(4).Value,2)&"</span></td>")
Response.Write("</tr>")
rsano.MoveNext
IF rsano.EOF Then
Exit For
End If
Next
%>
</table>
<table width="293" border="0">
<tr>
<%
'翻页控制代码
IF page<>1 Then
Response.Write("<td><span class=style22><a href=announce.asp?page=1>第一页</a></span></td>")
Response.Write("<td><span class=style22><a href=announce.asp?page="&(page-1)&">上一页</a></span></td>")
Else
Response.Write("<td><span class=style22>第一页</span></td>")
Response.Write("<td><span class=style22>上一页</span></td>")
End IF
IF page<>rsano.pagecount then
Response.Write("<td><span class=style22><a href=announce.asp?page=" & (page+1) & ">下一页</a></span></td>")
Response.Write("<td><span class=style22><a href=announce.asp?page=" & rsano.pagecount & ">最后一页</a></span></td>")
Else
Response.Write("<td><span class=style22>下一页</span></td>")
Response.Write("<td><span class=style22>最后一页</span></td>")
End IF
%>
<td><span class=style22>共<%=rsano.pagecount%>页</span></td>
<td><span class=style22>当前第<%=page%>页</span></td>
</tr>
</table>
<%
'网页对象析构代码
Set PageStyleT=Nothing
rsano.Close
con.Close
Set rsano=Nothing
Set con=Nothing
Set oWebI=Nothing
%>
</body>
</html>[/CODE]
ASP分也不用自己写算法的。

2007-07-14 12:41
rtc
Rank: 2
等 级:新手上路
威 望:4
帖 子:590
专家分:0
注 册:2007-6-6
得分:0 
你是自己写算法
我晕4·!!!!!!!
2007-07-15 12:06
qhscqb
Rank: 1
等 级:新手上路
威 望:1
帖 子:343
专家分:0
注 册:2007-2-3
得分:0 
强顶5楼版主所言
不过"rtc"说得有道理。分页程序还是简单点好,等掌握了原理自己也能写出更强的代码来,我说的不对吗?

编程快乐,快乐编程! 没有最好,只有更好!
2007-07-15 19:46



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




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

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