问一个关于数据库记录分页显示的问题

moplusplus 2008-04-13 06:33:29
我的代码如下:
<%
connstr="DBQ="+server.mappath("data/jfarticle.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Set conn=Server.CreateObject("ADODB.CONNECTION")
conn.open connstr
%><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
</table>
<table width="75%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#FF0000">
<tr>
<td width="5%" height="25" align="center" bgcolor="#FF0000"><span class="style1">ID</span></td>
<td width="29%" align="center" bgcolor="#FF0000"><span class="style1">新闻标题</span></td>
<td width="10%" align="center" bgcolor="#FF0000"><span class="style1">发布者</span></td>
<td width="13%" align="center" bgcolor="#FF0000"><span class="style1">所属一级分类</span></td>
<td width="15%" align="center" bgcolor="#FF0000"><span class="style1">所属二级分类</span></td>
<td width="18%" align="center" bgcolor="#FF0000"><span class="style1">发布日期</span></td>
<td width="10%" align="center" bgcolor="#FF0000"><span class="style1">操作</span></td>
</tr>
<%
page=clng(request("page"))
Set rs=Server.CreateObject("ADODB.RecordSet")
sql="select * from NEWS order by id desc"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
response.Write("没有记录")
else
rs.PageSize=10
if page=0 then page=1
pages=rs.pagecount
if page > pages then page=pages
rs.AbsolutePage=page

for j=1 to rs.PageSize
%>
<tr bgcolor="#FFFFFF">
<td height="22" align="center"><%=rs("id")%></td>
<td> 
<% if rs("imagenum")<>"0" then response.write "<img src='../images/news.gif' border=0 alt='图片新闻'>" end if %>
<a href="../NEWS.asp?id=<%=rs("id")%>" target="_blank" title="<%=rs("title")%>"><%=left(rs("title"),12)%></a></td>
<td align="center"><%=left(rs("user"),5)%></td>
<td align="center"><%=rs("BigClassName")%> </td>
<td align="center"><%=rs("SmallClassName")%></td>
<td align="center"><%=rs("infotime")%></td>
<td align="center"><a href="admin_infomodi.asp?id=<%=rs("id")%>">修改</a> <a href="admin_infodel.asp?id=<%=rs("id")%>">删除</a></td>
</tr>
<%
rs.movenext
if rs.eof then exit for
next
%>
</table>

<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<tr bgcolor="#FFFFFF">
<form method=Post action="admin_info.asp">
<td height="30" align="center">
<%
response.write "<a href=fenye.asp?page=1>首页</a> "
%>
<%
if page=1 then
Response.Write"上一页"
else
Response.Write"<a href=fenye.asp?page="&page-1&">上一页</a>"
end if
%>

<%for j=page-4 to page-1%>
<%if j>0 then%>
<a href="fenye.asp?page=<%=j%>"><%=j%></a>
<%end if%>
<%next%>

<%
for j=page to page+4
%>
<% if j<=pages then%>
<%if j=page then%>
<a href="fenye.asp?page=<%=j%>">[<%=j%>]</a>
<%else%>
<a href="fenye.asp?page=<%=j%>"><%=j%></a>
<%end if%>
<%end if%>
<% next
%>
<%if page<pages then%>
<a href="fenye.asp?page=<%=page+1%>">下一页</a>
<%else%>
下一页
<%end if%>
<%
response.write "<a href=fenye.asp?page="&rs.pagecount&">尾页</a>"
%>
</td></form>
</tr>
</table>
<%
end if
rs.close
set rs=nothing
%>

我的数据库表(表名:News)结构是:
id(自动增加) title(文本) BigClassName(文本) SmallClassName(文本) infotime(日期)

我想要达到的显示效果是:
上一页xxxx下一页
就是只显示5个页码.
但是我运行时,假设记录有6页,我运行的初始格式是:首页上一页12345下一页尾页
当我点到第2页时,却显示出首页上一页123456下一页尾页,一下子显示了6个页码
我有什么地方设置的有问题吗?
请高手帮忙指出.
谢谢!
...全文
24 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
moplusplus 2008-04-13
好象还是有点问题,当我点2的时候,确实显示的是:2 3 4 5 6
但是 当我点3的时候(我又添加了一些记录,现在有7页),显示的是:1 3 4 5 6 7而不是3 4 5 6 7
回复
johnnyeven 2008-04-13
<%
for j=page to page+4
%>
<% if j <=pages then%>
<%if j=page then%>
<a href="fenye.asp?page= <%=j%>">[ <%=j%>] </a>
<%else%>
<a href="fenye.asp?page= <%=j%>"> <%=j%> </a>
<%end if%>
<%end if%>
<% next
%>
LZ
在Page=2的时候 这段代码显示了2 3 4 5 6
还是代码问题吧

我猜楼主的意思是 在第一页的时候显示 1 2 3 4 5,第二页的时候显示2 3 4 5 6是吧??
那要把
<%for j=page-4 to page-1%>
<%if j>0 then%>
<a href="fenye.asp?page= <%=j%>"> <%=j%> </a>
<%end if%>
<%next%>
改成这样吧?
<%for j=page-5 to page-2%>
<%if j>0 then%>
<a href="fenye.asp?page= <%=j%>"> <%=j%> </a>
<%end if%>
<%next%>

我也没测试过 试试吧
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-13 06:33
社区公告
暂无公告