当前位置:编程学习 > asp >>

ASP从数据库读出记录倒排序显示

主要是从ACCESS数据库读取出内容。并且倒排序。有分页。而且,

比如:有10条记录。每页显示3条。第一页要显示第10条,第9条,8。第二页要显示:7,6,5。。这样子显示出来。

但我只能正常显示出第一页的序列号,第二页又变成了第10条,第9条,8。但第二页显示出来内容是对的。

主要代码如下:

<%

Page_Size=15
Rst.PageSize=Page_Size
Page_Count=Rst.PageCount
Rc=Rst.Recordcount
Page=Request.QueryString("Page")
 If Page="" Or Not IsNumeric(Page) Then
  Page=1
 Elseif Cint(Page)<1 Then
  
  Page=1
 Elseif cint(Page)>Page_Count Then
  Page=Page_Count
 End if
Rst.Absolutepage=Page
Response.Write "<center>一共有 " &Rc&"  条留言</center><br />"
n=1
Do While Not Rst.Eof And Page_Size>0

Response.Write "第"&Rc&"条留言"
%>
(这是循环输出记录集的代码,<table>.......Rst("......")  </table>省略。。。。。。)

<%
Rst.MoveNext
Page_Size=Page_Size-1
Rc=Rc-n
Loop
End if
%>
<br />
<%
Response.Write ("共"&Page_Count&"页,第"&Page&"页")
If Page=1 Then
 Response.Write ("第一页 上一页")
Else
 Response.Write(" <a href='?page=1'>第一页</a> <a href='?page="&(page-1)&"'>上一页</a>")
End if
If Cint(Page)=Page_Count Then
 Response.Write ("下一页 最后页")
Else
 Response.Write(" <a href='?page="&(page+1)&"'>下一页</a> <a href='?page="&Page_Count&"'>最后页</a>")
End if
%>

 

追问:用你这个方法。我设定每页显示3条记录。第一页成了3.2.1,第二页,第三页也是这样。。。
答案:xh=Rst.Recordcount-Page_Size*(Rst.PageCount-1)

Do While 。。。

response.write "第" & xh & "条记录"

xh=xh-1

。。。

loop

 

Rc=Rst.Recordcount  - Page * Page_Size - Page_Size

上面这句放在do输出之前,判断Page 合法之后

在sql语句中加个order by id desc  表示以id 倒序显示

如sql="select * form 表名 order by id desc"

交你一个简单方法实现排序  序号问题

 

在do while not……  前面加一个 i=0

在do while not……  后面加一个i=i+1

在显示的数据行前面加一个 <%=i%>

搞定!  你试试 简单又好用,如果要释放对象就在rs.close前加  set i=nothing  

i可以用任何字母代替

每页显示3条信息...Page_Size=15?你只是判断了分页的链接参数page+1或者-1,第几条这个数字并没有根据page的变化而变化,套个For循环

  If page> 1 Then
    For sN = page-4 To page-1
      If sN > 0 Then 
      "第"& sN & "页" 
         End If
    Next
   End If

 

上一个:ASP判断网站访问者系统语言
下一个:如何利用ASP实现这个效果?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,