php mysql分頁類

WBOY
發布: 2016-07-25 08:43:39
原創
805 人瀏覽過
封裝的類別:
  1. /*********************************************
  2. 類別名稱: PageSupport
  3. 功能:分頁顯示mysql資料庫中的資料
  4. *********************************** ************/
  5. class PageSupport{
  6. //屬性
  7. var $sql; / /要顯示資料的SQL查詢語句
  8. var $page_size; //每頁顯示最多行數
  9. var $start_index; //要顯示記錄的首行序號
  10. var $total_records; / /記錄總數
  11. var $current_records; //本頁讀取的記錄數
  12. var $result; //讀出的結果
  13. var $total_pages; //總頁數
  14. var $current_page; //目前頁數
  15. var $display_count = 30; //顯示的前幾頁和後幾頁數
  16. var $arr_page_query; //數組,包含分頁顯示需要傳遞的參數
  17. var $first;
  18. var $prev;
  19. var $next;
  20. var $last;
  21. //方法
  22. /*******************************************
  23. 建構子:__construct ()
  24. 輸入參數:
  25. $ppage_size:每頁顯示最多行數
  26. *************************** ******************* */
  27. function PageSupport($ppage_size)
  28. {
  29. $this->page_size=$ppage_size;
  30. $this->start_index=0;
  31. }
  32. /*********************************************
  33. 建構子:__destruct ()
  34. 輸入參數:
  35. *************************************** ********/
  36. function __destruct()
  37. {
  38. }
  39. /*********************************************
  40. get函數:__get ()
  41. ********************************************* **/
  42. function __get($property_name)
  43. {
  44. if(isset($this->$property_name))
  45. {
  46. return($this->$property_name);
  47. }
  48. else
  49. {
  50. return(NULL);
  51. }
  52. }
  53. /*********************************************
  54. set函數:__set ()
  55. ********************************************* **/
  56. function __set($property_name, $value)
  57. {
  58. $this- >$property_name = $value;
  59. }
  60. /*********************************************
  61. 函式名稱:read_data
  62. 功能: 依照SQL查詢語句從表中讀取對應的記錄
  63. 傳回值:屬性二維陣列result[記錄號][欄位名稱]
  64. *********** ************************************/
  65. function read_data()
  66. {
  67. $psql=$this->sql
  68. //查詢數據,資料庫連結等資訊應在類別呼叫的外部實作
  69. $result=mysql_query($psql) or die(mysql_error());
  70. $this->total_records=mysql_num_rows( $result);
  71. //利用LIMIT關鍵字取得本頁所要顯示的記錄
  72. if($this->total_records>0)
  73. {
  74. $this->start_index = ( $this->current_page-1)*$this->page_size;
  75. $psql=$psql. " LIMIT ".$this->start_index." , ".$this->page_size;
  76. $result=mysql_query($psql) or die(mysql_error());
  77. $this->current_records=mysql_num_rows($result);
  78. //將查詢結果放在數位上
  79. $i=0;
  80. while($row=mysql_fetch_Array($result))
  81. {
  82. $this->result[$i]=$row;
  83. $i ;
  84. }
  85. }
  86. //取得總頁數、目前頁資訊
  87. $this->total_pages=ceil($this->total_records/$this->page_size);
  88. $this->first=1;
  89. $this->prev=$this->current_page-1;
  90. $this->next=$this->current_page 1;
  91. $this-> last=$this->total_pages;
  92. }
  93. /*********************************************
  94. 函数名:standard_navigate()
  95. 功能: 显示首页、下页、上页、未页
  96. ***********************************************/
  97. function standard_navigate()
  98. {
  99. echo "
    ";
  100. echo "
    ";
  101. echo "第".$this->current_page."页/共".$this->total_pages."页";
  102. echo " ";
  103. echo "跳到页";
  104. echo "";
  105. //生成导航链接
  106. if ($this->current_page > 1) {
  107. echo "首页|";
  108. echo "上一页|";
  109. }
  110. if( $this->current_page < $this->total_pages) {
  111. echo "下一页|";
  112. echo "末页";
  113. }
  114. echo "";
  115. echo "
";
  • }
  • /*********************************************
  • 函式名稱:full_navigate ()
  • 功能: 顯示首頁、下頁、上頁、未頁
  • 產生導覽連結如1 2 3 ... 10 11
  • ************** *********************************/
  • function full_navigate()
  • {
  • echo "";
  • echo "
    ";
  • echo "第".$this->current_page."頁/共".$this-> ;total_pages."頁";
  • echo "
  • echo "跳到current_page."'/>頁";
  • echo "";
  • // 產生導航連結如1 2 3 ... 10 11
  • $front_start = 1;
  • if($this->current_page > $this->display_count){
  • $front_start = $this->current_page - $this->display_count;
  • }
  • for($i=$front_start;$icurrent_page;$i ){
  • echo "[".$i."]
  • }
  • echo "[".$this->current_page."]";
  • $displayCount = $this->display_count
  • if($this->total_pages > $displayCount&&($this->current_page $displayCount)total_pages){
  • $displayCount = $this- >current_page $displayCount;
  • }else{
  • $displayCount = $this->total_pages;
  • }
  • for($i=$this->current_page 1;$i echo "[".$i ."] ";
  • }
  • // 產生導覽連結
  • if ($this->current_page > 1) {
  • echo "第一個。">首頁|";
  • echo "上一頁|";
  • }
  • if( $this->current_page total_pages) {
  • echo "下一頁|";
  • echo "最後頁"
  • }
  • echo "
  • "
  • echo "
  • "; }
  • }
  • ? >
  • 複製程式碼
  • ;
    寫在php頁裡面的程式碼:
    1. include_once("fenye_php.php" ); //引入類別
    2. /////////////////////////////////////// /////////////////////////////////
    3. $con = mysql_connect("localhost","root"," ");
    4. if (!$con)
    5. {
    6. die('Could not connect: ' . mysql_error());
    7. }
    8. mysql_select_db("myblog", $ con); //選取資料庫
    9. $PAGE_SIZE=10; //設定每頁顯示的數目
    10. /////////////////// ////////////////////////////////////////////////// ///
    11. $pageSupport = new PageSupport($PAGE_SIZE); //實例化PageSupport物件
    12. $current_page=$_GET["current_page"];//分頁目前頁數
    13. if (isset($current_page)) {
    14. $pageSupport->__set("current_page",$current_page);
    15. } else {
    16. $pageSupport ->__set("current_page",1);
    17. }
    18. $pageSupport->__set("sql","select * from article ");
    19. $pageSupport ->read_data();//讀取資料
    20. if ($pageSupport->current_records > 0) //如果資料不為空,則組裝資料
    21. {
    22. for ($i=0 ; $icurrent_records; $i )
    23. {
    24. $title = $pageSupport->result[$i]["title"];
    25. $content = $pageSupport->result[ $i]["content"];
    26. $part=substr($content,0,400);
    27. //迴圈輸出每個資料
    28. echo '
    29. '.$title.'
    30. '.$part.'
    31. update delet
  • ';
  • }
  • }
  • $pageSupport->standard_navigate(); //呼叫類別裡面的這個函數,顯示出分頁HTML
  • //關掉資料庫
  • mysql_close($con);
  • ?>
  • 複製程式碼
    取自:http://blog.csdn.net/phpfenghuo/article/details/23207099
    分頁, php, mysql


    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    最新問題
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板