分页查询数据出现问题

rzzt 2005-07-09 01:46:56
各位高手,本人在做一个按条件分页查询数据时碰到了这样一个问题:

什么条件也不选时,显示所有的数据,共9页,很正常
现在加了一个文本域,点查询选择符合条件的数据(假设有7页),第一页很正常,显示共:7页,但是:点"下一页",应该显示共:7页,但显示的共:9页。

完整代码如下(net.mdb,自己建一个就行,表名:sjzl,字段:msisdn):哪位能解决???菜鸟谢谢了!!

<form name="test" action="8.asp" method="post">
手机号码:
<input type='text' name='hm' size=14 >
<input type='submit' value='提交'>
</form>


<%
Set conn = Server.CreateObject("ADODB.Connection")
strcon="provider=microsoft.jet.oledb.4.0;data source="& _
server.mappath("net.mdb")
conn.Open strcon
%>

<%
dim m,n
set rs=server.CreateObject("adodb.recordset")
hm=Request.Form("hm")
%>

<%
if hm="" then
sqlstr="Select * From sjzl "
end if

if hm<>"" then
sqlstr=" Select * From sjzl where msisdn>"&hm
end if
%>
<%rs.open sqlstr,conn,1,3%>
<%
if Rs.Eof AND RS.BOF then
Response.Redirect("1.html")
END IF
%>

<%
rs.pagesize=20 '定义一页显示的记录数目
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
%>

<%
Response.Write "<Table Border=1 cellspacing=0 cellpadding=4 bordercolor=#111111 style=Border-collapse:collapse >"
FdCount=Rs.Fields.Count
Response.Write "<TR>"
For I=0 to FdCount-1
Response.Write "<Td><Font Size=2>" &Rs.fields(i).name & " </font></Td>"
next
Response.Write "</TR>"
%>

<%
n=1
while not rs.eof and n<=rs.pagesize
%>
<%
n=n+1
if Not Rs.Eof then
Response.Write "<Tr bgcolor=#d4e8ff>"
For I=0 to FdCount-1
Response.Write "<Td><Font Size=2>" & Rs.Fields(i).Value & "</Font></Td>"
Next
Response.Write "</Tr>"
Rs.MoveNext
'Response.Write "</Table>"
end if
wend
Response.Write "</Table>"
%>


<p>共:<%=tatalpages%>页 当前为:<%=nowpage%>页
<%if nowpage>1 then%>
<a href="8.asp?hm="&hm&"&page=<%=nowpage-1%>">上一页</a>
<%else%>
上一页
<%end if%><%if nowpage < tatalpages then%>
<a href="8.asp?hm="&hm&"&page=<%=nowpage+1%>">下一页</a>
<%else%>
下一页
<%end if%>
<%if nowpage<>1 then%>
<a href="8.asp?hm="&hm&"&page=<%=1%>"> 首页</a>
<%else%>
首页
<%end if%>
<%if nowpage<>tatalpages then %>
<a href="8.asp?hm="&hm&"&page=<%=tatalpages%>">末页</a>
<%else%>
末页
<%end if%>

<%
rs.close
Set rs = Nothing
conn.close
set conn=nothing
%>


</p>

...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小赵 2005-07-09
  • 打赏
  • 举报
回复
hm=Request.Form("hm")
这里错了
改成:hm=Request.QueryString("hm")

不信你在
if hm="" then
sqlstr="Select * From sjzl "
end if

处加上 Response.Write "hm="&hm
Response.End
检测以下 hm的值是空的
rzzt 2005-07-09
  • 打赏
  • 举报
回复
当表单文本域为空时,点查询,应该能查到所有数据(假设10页)。当表单文本域不为空时应能查到符合条件的数据(假设5页),问题是在点下一页的时候,显示的总页数又变为10页了。
syd41 2005-07-09
  • 打赏
  • 举报
回复
hm为空,当然就是默认的搜索所有数据库的数据了
rzzt 2005-07-09
  • 打赏
  • 举报
回复
什么意思呀,菜鸟没弄明白。现在加上hm之后,连分页都实现不了。
itzhiren 2005-07-09
  • 打赏
  • 举报
回复
你的数据库内容没有改吗?
rzzt 2005-07-09
  • 打赏
  • 举报
回复
blueonly,不行的,因为提交的hm为空。
blueonly 2005-07-09
  • 打赏
  • 举报
回复
<a href="8.asp?hm="&hm&"&page=<%=nowpage+1%>">下一页</a>

把类似的改成这样。
<a href="8.asp?hm="& server.urlencode(hm) &"&page=<%=nowpage+1%>">下一页</a>

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧