你不可錯過的一個php分頁類(mysql)

來源:互聯網
上載者:User
  1. /*

  2. mysql_pager.class.php
  3. 三個參數:mysql_query()的結果, url變數page, 您要的每頁記錄數
  4. */

  5. class mysql_pager {

  6. // define properties
  7. var $page;
  8. var $result;
  9. var $results_per_page = 3;
  10. var $total_pages;

  11. /*

  12. Define the methods

  13. 下面是建構函式,和類同名(>php4),需要查詢的結果控制代碼,當前頁碼,每頁記錄數

  14. like: $f->mysql_pager($result, 1, 15);
  15. */
  16. function mysql_pager( $result, $current_page, $results_per_page ) {
  17. if(!$result){
  18. echo "資料庫未運行,結果集錯誤\n";
  19. return;
  20. }

  21. $this->result = $result;

  22. if(!$current_page || $current_page < 0)

  23. $this->page = 1;
  24. else $this->page = $current_page;

  25. if(!emptyempty($results_per_page))

  26. $this->results_per_page = $results_per_page;

  27. $numrows = @mysql_num_rows($this->result);

  28. if(!$numrows) {
  29. echo "查詢結果為空白.\n";
  30. return;
  31. }

  32. $this->total_pages = ceil($numrows / $this->results_per_page);

  33. }

  34. /*

  35. 下面是列印內容的函數,可以不用,也可以根據自己的需要擴充
  36. 這裡只是列印出id
  37. */
  38. function print_paged_results() {
  39. echo "
  40. $start = ($this->page - 1) * $this->results_per_page;
  41. // 編輯這部分輸出任何您想要的HTML
  42. \n";
  43. mysql_data_seek($this->result, $start);
  44. $x = 0;
  45. for($i = 1; $i <= $this->results_per_page && $row = @mysql_fetch_array($this->result); $i++) {
  46. if($x++ & 1) $bgcolor = "#F2F2FF";
  47. else $bgcolor = "#EEEEEE";

  48. echo "

  49. ";
  50. }
  51. echo "
  52. ". $row["id"] . "
    \n";
  53. }

  54. /*

  55. 下面是列印頁碼和連結的函數,在需要顯示頁碼的地方調用
  56. */
  57. function print_navigation() {
  58. global $PHP_SELF;
  59. echo "";
  60. for($i = 1; $i <= $this->total_pages; $i++) { #loop to print << 1 2 3... $total_pages >>
  61. if($i == 1 && $this->page > 1) #Prints the << first to goto the previous page (not on page 1)
  62. echo "page - 1)."\" onMouseOver=\"status="Previous Page";return true;\" onMouseOut=\"status=" ";return true;\">?";

  63. if($i == $this->page) #Doesn"t print a link itself, just prints page number

  64. echo " $i ";

  65. if($i != $this->page) #Other links that aren"t this page go here

  66. echo " $i ";

  67. if($i == $this->total_pages && $this->page != $this->total_pages) # Link for next page >> (not on last page)

  68. echo "page + 1)."\" onMouseOver=\"status="Go to the Next Page";return true;\" onMouseOut=\"status=" ";return true;\">?";
  69. }

  70. echo "\n";

  71. }
  72. }

  73. /* 例子 http://bbs.it-home.org

  74. mysql_connect($server, $uname, $pass );
  75. mysql_select_db("$db");
  76. $result= @mysql_query("Select * FROM table");

  77. $p = new mysql_pager( $result, $page=$_GET["page"], 10 );

  78. $p->print_navigation();
  79. $p->print_paged_results();
  80. $p->print_navigation();
  81. */
  82. ?>

複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.