电机换向器表面氧化膜:asp翻页问题,请指点!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 05:24:43
<%

set rs=server.CreateObject("adodb.recordset")
sql="SELECT * FROM pic where pic_id="&request.querystring("pic_id")
on error resume next
rs.Open sql,conn,1,1
set rs1=server.CreateObject("Adodb.recordset")
sql2="select * from Pic where pic_id="&request.querystring("pic_id")+1&"&piccat_id="&request.querystring("piccat_id")&" order by pic_id desc"
on error resume next
rs2.open sql2,conn,1,1
if not rs2.eof then
Response.Write("<a href=showpic.asp?pic_id="&request.querystring("pic_id")+1 &"&piccat_id="&rs("piccat_id")&" >上一张</a>     ")
end if
rs2.close
sql2="select * from Pic where pic_id="&request.querystring("pic_id")-1&"&piccat_id="&request.querystring("piccat_id")&" order by pic_id asc"
on error resume next
rs2.open sql2,conn,1,1

if not rs2.eof then
Response.Write("<a href=showpic.asp?pic_id=" &request.querystring("pic_id")-1 & "&piccat_id="&rs("piccat_id")&" >下一张</a>")
end if
rs2.close
set rs2=nothing
%>
这是一段图片显示翻页代码,但还不完善,到记录的开头还可按上一页,结尾也可按下一页。请高手指点!!!

首先用ID+1和-1的方法来编上一张、下一张这样的程序就是不太合理的。
除非你能保证ID号都是连续不断的。比如经过几次记录的添加与删除,自动ID编号变成了1、2、3、7...... 这样用+1-1的方法就会出现问题。除非你再加入判断句进行判断,没找到记录的话再次+1或-1,太麻烦了吧~~

一般的用法是得到当前记录的ID 如果是上一片就 where ID<request("pic_id") 反之 where ID>......

数据库输出可以这样写
sql2="select top 1 * from Pic where pic_id<"&Request("pic_id") order by Pic_ID desc
Rs.open Sql,conn,1,1
if not rs.eof then
Response.write("<a href=showpic.asp?pic_id="&Rs("Pic_ID")&">上一片</a>")
else
Response.write("前面没有啦^_^")
end if
Rs.close

sql2="select top 1 * from Pic where pic_id>"&Request("pic_id") order by Pic_ID desc
Rs.open Sql,conn,1,1
if not rs.eof then
Response.write("<a href=showpic.asp?pic_id="&Rs("Pic_ID")&">上一片</a>")
else
Response.write("后面没有啦^_^")
end if
Rs.close