佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 951|回复: 31

谁会ASP 的paging function?

[复制链接]
发表于 6-4-2006 03:22 PM | 显示全部楼层 |阅读模式
如题,谁有 sample code which display 10 records from mysql in each page using ASP? 谢谢!
回复

使用道具 举报


ADVERTISEMENT

cky_2004 该用户已被删除
发表于 6-4-2006 03:50 PM | 显示全部楼层
www.asp101.com/samples/db_paging.asp
不过不是mysql database
回复

使用道具 举报

 楼主| 发表于 6-4-2006 04:14 PM | 显示全部楼层
原帖由 cky_2004 于 6-4-2006 03:50 PM 发表
www.asp101.com/samples/db_paging.asp
不过不是mysql database


我要的是MYSQL
anyway谢谢
回复

使用道具 举报

发表于 6-4-2006 04:31 PM | 显示全部楼层
MYSQL 就容易了。。你可以用
SELECT * FROM TABLE LIMIT 1,10

改后面的两个VALUE就可以了如第一面是
SELECT * FROM TABLE LIMIT 1,10(第一行算起10个RECORD)

第二面是SELECT * FROM TABLE LIMIT 10,20桨
回复

使用道具 举报

 楼主| 发表于 6-4-2006 04:55 PM | 显示全部楼层
原帖由 max5007 于 6-4-2006 04:31 PM 发表
MYSQL 就容易了。。你可以用
SELECT * FROM TABLE LIMIT 1,10

改后面的两个VALUE就可以了如第一面是
SELECT * FROM TABLE LIMIT 1,10(第一行算起10个RECORD)

第二面是SELECT * FROM TAB ...


问题是我不懂以后会有多少records add进database
如果我50 records 在 database
然后limit 一个 page display 10 records
这样写得话,其余的40 records怎样display出来?
回复

使用道具 举报

发表于 6-4-2006 05:10 PM | 显示全部楼层
原帖由 stephanie83 于 6-4-2006 04:14 PM 发表


我要的是MYSQL
anyway谢谢


你用 MySQL + ASP, 那么应该是运行在 windows 吧? 如果运行在 windows 上, 非安装 MySQL ODBC 不可... 只要是用 ODBC, 写法和 cky_2004 给的网页例子大同小异.
回复

使用道具 举报

Follow Us
发表于 7-4-2006 12:25 AM | 显示全部楼层
我假设你的ASP已经connect到MySQL了.


  1. <%
  2. If trim(Request("page")) = "" Then
  3. intPage = 1
  4. Else
  5. intPage = cint( trim(Request.Querystring("page")) )
  6. End If

  7. Set rs = Server.CreateObject("ADODB.Recordset")
  8. PageSize = 2    '<-这里要改的也就是一叶你要display多少个data
  9. rs.PageSize = PageSize
  10. rs.CacheSize = PageSize
  11. rs.CursorLocation = 3

  12. sql="Select * From mydata"
  13. rs.Open sql,conn

  14. If Not rs.Eof Then

  15.    rs.AbsolutePage = intPage
  16.    i = 1
  17.    While Not rs.Eof And i <= PageSize
  18.    No= i%>
  19.                                 <tr>
  20.                                         <td width="37">&nbsp;</td>
  21.                                         <td width="138"><%=rs("data1")%></td>
  22.                                         <td width="211"><%=rs("data2")%></td>
  23.                                         <td width="314">??</td>
  24.                                 </tr>
  25. <%i=i+1
  26. rs.MoveNext  
  27. Wend
  28. End If%>        
  29.                                 <tr>
  30.                                         <td colspan="4"><%=Paging(intPage, rs.PageCount, rs.RecordCount)%>
  31.                                         <%Function Paging(ByVal intPage, ByVal intPageCount, ByVal intRecordCount)

  32.                                 If intPage > intPageCount Then
  33.                                         intPage = intPageCount
  34.                                 ElseIf intPage < 1 Then
  35.                                         intPage = 1
  36.                                 End If
  37.                                 
  38.                                 If intRecordCount = 0 Then
  39.                                         strRet = "No Records Found"
  40.                                 ElseIf intPageCount = 1 Then
  41.                                         strRet = "End of hits"
  42.                                 Else
  43.                                         For i = 1 To Request.QueryString.Count
  44.                                                 If LCase(Request.QueryString.Key(i)) <> "page" Then
  45.                                                         strQueryString = strQueryString & "&"
  46.                                                         strQueryString = strQueryString & Server.URLEncode(Request.QueryString.Key(i)) & "="
  47.                                                         strQueryString = strQueryString & Server.URLEncode(Request.QueryString.Item(i))
  48.                                                 End If
  49.                                         Next
  50.                        
  51.                                         For i = 1 To Request.Form.Count
  52.                                                 If LCase(Request.Form.Key(i)) <> "page" Then
  53.                                                         strQueryString = strQueryString & "&"
  54.                                                         strQueryString = strQueryString & Server.URLEncode(Request.Form.Key(i)) & "="
  55.                                                         strQueryString = strQueryString & Server.URLEncode(Request.Form.Item(i))
  56.                                                 End If
  57.                                         Next
  58.                        
  59.                                         If Len(strQueryString) <> 0 Then
  60.                                                 strQueryString = "?" & Mid(strQueryString, 2) & "&"
  61.                                         Else
  62.                                                 strQueryString = "?"
  63.                                         End If
  64.                        
  65.                                         strScript = Request.ServerVariables("SCRIPT_NAME") & strQueryString
  66.                                 
  67.                                         If intPage <= 10 Then
  68.                                                 intStart = 1
  69.                                         Else
  70.                                                 If (intPage Mod 10) = 0 Then
  71.                                                         intStart = intPage - 9
  72.                                                 Else
  73.                                                         intStart = intPage - (intPage Mod 10) + 1
  74.                                                 End If
  75.                                         End If
  76.                        
  77.                                         intEnd = intStart + 9
  78.                                         If intEnd > intPageCount Then intEnd = intPageCount
  79.                                 
  80.                                         strRet = "Page " & intPage & " of " & intPageCount & ": "
  81.                                 
  82.                                         If intPage <> 1 Then
  83.                                                 strRet = strRet & "<a href=""" & strScript
  84.                                                 strRet = strRet & "page=" & intPage - 1
  85.                                                 strRet = strRet & """><<Prev</a> "
  86.                                         End If
  87.                                 
  88.                                         For i = intStart To intEnd
  89.                                                 If i = intPage Then
  90.                                                         strRet = strRet & "<b>" & i & "</b> "
  91.                                                 Else
  92.                                                         strRet = strRet & "<a href=""" & strScript
  93.                                                         strRet = strRet & "page=" & i
  94.                                                         strRet = strRet & """>" & i & "</a>"
  95.                                                         If i <> intEnd Then strRet = strRet & " "
  96.                                                 End If
  97.                                         Next
  98.                                 
  99.                                         If intPage <> intPageCount Then
  100.                                                 strRet = strRet & " <a href=""" & strScript
  101.                                                 strRet = strRet & "page=" & intPage + 1
  102.                                                 strRet = strRet & """>Next>></a> "
  103.                                         End If
  104.                                 End If
  105.                                 
  106.                                 Paging = strRet
  107.                         End Function%>  
复制代码


好像有一点长

[ 本帖最后由 红发 于 7-4-2006 12:30 AM 编辑 ]
回复

使用道具 举报

发表于 7-4-2006 09:46 AM | 显示全部楼层
原帖由 stephanie83 于 6-4-2006 04:55 PM 发表


问题是我不懂以后会有多少records add进database
如果我50 records 在 database
然后limit 一个 page display 10 records
这样写得话,其余的40 records怎样display出来?


汗。。。你可以用VALUE来控制啊。。我有一个TABLE超过1百万的RECORD也是这样用,

LIMIT A,B

A和B就用基本的+-X / 来计算咯。。你自己尝试想一下。不难的
回复

使用道具 举报


ADVERTISEMENT

发表于 7-4-2006 11:36 AM | 显示全部楼层
原帖由 max5007 于 7-4-2006 09:46 AM 发表


汗。。。你可以用VALUE来控制啊。。我有一个TABLE超过1百万的RECORD也是这样用,

LIMIT A,B

A和B就用基本的+-X / 来计算咯。。你自己尝试想一下。不难的



这个我是用在PHP的哦。

但ASP也可以的
回复

使用道具 举报

发表于 7-4-2006 11:48 AM | 显示全部楼层
原帖由 红发 于 7-4-2006 11:36 AM 发表



这个我是用在PHP的哦。

但ASP也可以的


只要是用MYSQL就可以了^^
回复

使用道具 举报

发表于 7-4-2006 01:15 PM | 显示全部楼层
原帖由 max5007 于 7-4-2006 11:48 AM 发表


只要是用MYSQL就可以了^^



对咯,如果他换DB的话就没有的用了。

还有MySQL有一个问题就是不可以用rs.recordcount这个function
回复

使用道具 举报

 楼主| 发表于 10-4-2006 09:41 AM | 显示全部楼层
不好意思,我不明白
回复

使用道具 举报

发表于 10-4-2006 09:43 AM | 显示全部楼层
原帖由 stephanie83 于 10-4-2006 09:41 AM 发表
不好意思,我不明白



美女那里不明白
回复

使用道具 举报

 楼主| 发表于 10-4-2006 11:27 AM | 显示全部楼层
如果我的sql只放
SELECT * FROM TABLE LIMIT 1,10
只会出10个 records  
然后没有第二面,第三面
so,该怎么写
回复

使用道具 举报

发表于 10-4-2006 11:36 AM | 显示全部楼层
就酱啊
SELECT * FROM TABLE LIMIT 1,10--page1
SELECT * FROM TABLE LIMIT 11,10--page2
SELECT * FROM TABLE LIMIT 21,10--page3

就这样简单。。。
在LIMIT后面的VALUE可以SET一个INT来代替
回复

使用道具 举报

HUCKKEON 该用户已被删除
发表于 10-4-2006 11:40 AM | 显示全部楼层
原帖由 红发 于 7-4-2006 01:15 PM 发表



对咯,如果他换DB的话就没有的用了。

还有MySQL有一个问题就是不可以用rs.recordcount这个function


我也同意红发说法。
不过,关于 recordcount 的问题,没错的话,用 rs.cursorlocation=aduseclient,应该是可以了。。
回复

使用道具 举报


ADVERTISEMENT

发表于 10-4-2006 11:53 AM | 显示全部楼层
原帖由 HUCKKEON 于 10-4-2006 11:40 AM 发表


我也同意红发说法。
不过,关于 recordcount 的问题,没错的话,用 rs.cursorlocation=aduseclient,应该是可以了。。



是吗!!

我是写一个function在那里的哦
回复

使用道具 举报

 楼主| 发表于 10-4-2006 11:57 AM | 显示全部楼层
原帖由 max5007 于 10-4-2006 11:36 AM 发表
就酱啊
SELECT * FROM TABLE LIMIT 1,10--page1
SELECT * FROM TABLE LIMIT 11,10--page2
SELECT * FROM TABLE LIMIT 21,10--page3

就这样简单。。。
在LIMIT后面的VALUE可以SET一个IN ...



我明白
可是这样写就会有第二面马
回复

使用道具 举报

HUCKKEON 该用户已被删除
发表于 10-4-2006 12:12 PM | 显示全部楼层
原帖由 红发 于 10-4-2006 11:53 AM 发表



是吗!!

我是写一个function在那里的哦


不介意分享它的error msg ?
个人觉得用limit的方法执行速度会比较快。
回复

使用道具 举报

发表于 10-4-2006 12:16 PM | 显示全部楼层
原帖由 HUCKKEON 于 10-4-2006 12:12 PM 发表


不介意分享它的error msg ?
个人觉得用limit的方法执行速度会比较快。



什么error msg??

见人见知吧

这个我会test看。
现在没有办法test
rs.cursorlocation=aduseclient
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 11-11-2024 08:25 PM , Processed in 0.126515 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表