Home  >  Article  >  Backend Development  >  php+mysql paging class

php+mysql paging class

WBOY
WBOYOriginal
2016-07-25 08:43:39811browse
Encapsulated class:
  1. /*********************************************
  2. Class name: PageSupport
  3. Function : Display data in mysql database in pages
  4. ***************************************** ******/
  5. class PageSupport{
  6. //Attributes
  7. var $sql; //SQL query statement of the data to be displayed
  8. var $page_size; // The maximum number of rows displayed on each page
  9. var $start_index; //The serial number of the first row of the record to be displayed
  10. var $total_records; //The total number of records
  11. var $current_records; //The number of records read on this page
  12. var $result; / /Reading results
  13. var $total_pages; //Total number of pages
  14. var $current_page; //Current number of pages
  15. var $display_count = 30; //Number of previous and next pages displayed
  16. var $arr_page_query ; //Array, containing parameters that need to be passed for paging display
  17. var $first;
  18. var $prev;
  19. var $next;
  20. var $last;
  21. //Method
  22. /*******************************************
  23. Constructor: __construct()
  24. Input parameters:
  25. $ppage_size: Maximum number of lines displayed per page
  26. *********************************** ************/
  27. function PageSupport ($ppage_size)
  28. {
  29. $this->page_size=$ppage_size;
  30. $this->start_index=0;
  31. }
  32. /*********************************************
  33. Constructor: __destruct()
  34. Input parameters:
  35. ********************************************* **/
  36. function __destruct()
  37. {
  38. }
  39. /*******************************************
  40. get function: __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 function: __set()
  55. ***********************************************/
  56. function __set($property_name, $value)
  57. {
  58. $this->$property_name = $value;
  59. }
  60. /*********************************************
  61. Function name: read_data
  62. Function : Read the corresponding records from the table according to the SQL query statement
  63. Return value: attribute two-dimensional array result [record number] [field name]
  64. ******************* ****************************/
  65. function read_data()
  66. {
  67. $psql=$this->sql;
  68. //Query data, database link and other information should be implemented outside the class call
  69. $result=mysql_query ($psql) or die(mysql_error());
  70. $this->total_records=mysql_num_rows($result);
  71. //Use the LIMIT keyword to get the records to be displayed on this page
  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. //Put the query results In the result array
  79. $i=0;
  80. while($row=mysql_fetch_Array($result))
  81. {
  82. $this->result[$i]=$row;
  83. $i++;
  84. }
  85. }
  86. //Get the total number of pages and current page information
  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 "
";
  • }
  • /*********************************************
  • Function name: full_navigate()
  • Function: Display homepage, next page, previous page, and next page
  • Generate navigation links such as 1 2 3... 10 11
  • ********************** *************************/
  • function full_navigate()
  • {
  • echo "
    ";
  • echo "
    ";
  • echo "第".$this->current_page."页/共".$this->total_pages."页";
  • echo " ";
  • echo "跳到页";
  • 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;$i<$this->current_page;$i++){
  • echo "[".$i ."] ";
  • }
  • echo "[".$this->current_page."]";
  • $displayCount = $this->display_count;
  • if($this->total_pages > $displayCount&&($this->current_page+$displayCount)<$this->total_pages){
  • $displayCount = $this->current_page+$displayCount;
  • }else{
  • $displayCount = $this->total_pages;
  • }
  • for($i=$this->current_page+1;$i<=$displayCount;$i++){
  • echo "[".$i ."] ";
  • }
  • //生成导航链接
  • if ($this->current_page > 1) {
  • echo "首页|";
  • echo "上一页|";
  • }
  • if( $this->current_page < $this->total_pages) {
  • echo "下一页|";
  • echo "末页";
  • }
  • echo "";
  • echo "
  • ";
  • }
  • }
  • ?>
  • 复制代码
    Code written in the php page:
    1. include_once("fenye_php.php"); //Introduce the class
    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); //Select database
    9. $PAGE_SIZE=10; //Set the number displayed on each page
    10. /////// ///////////////////////////////////////////////////// //////////////
    11. $pageSupport = new PageSupport($PAGE_SIZE); //Instantiate the PageSupport object
    12. $current_page=$_GET["current_page"];//Page the current page Count
    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();//Read data
    20. if ($pageSupport->current_records > ; 0) //If the data is not empty, assemble the data
    21. {
    22. for ($i=0; $i<$pageSupport->current_records; $i++)
    23. {
    24. $title = $pageSupport->result[ $i]["title"];
    25. $content = $pageSupport->result[$i]["content"];
    26. $part=substr($content,0,400);
    27. //Loop to output each piece of data
    28. echo '
    29. '.$title.'
    30. '.$part .'
    31. update delet
  • ';
  • }
  • }
  • $pageSupport->standard_navigate(); //Call this function in the class to display paging HTML
  • //Close the database
  • mysql_close($con );
  • ?>
  • Copy code
    From: http://blog.csdn.net/phpfenghuo/article/details/23207099
    Pagination, php, mysql


    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn