Home  >  Article  >  Backend Development  >  Simple, convenient and full-featured PHP paging class_PHP tutorial

Simple, convenient and full-featured PHP paging class_PHP tutorial

WBOY
WBOYOriginal
2016-07-14 10:09:021120browse

Paging class code
class SubPages{
private $each_disNums;//The number of items displayed on each page
private $nums;//Total number of entries
private $current_page;//The currently selected page
private $sub_pages;//Number of pages displayed each time
private $pageNums;//Total number of pages
private $page_array = array();//used to construct an array for paging
private $subPage_link; //Link to each page
private $subPage_type;//Display the type of paging
/*
__construct is the constructor of SubPages, which is used to run automatically when creating a class.
@$each_disNums The number of items displayed on each page
@nums Total number of entries
@current_num The currently selected page
@sub_pages The number of pages displayed each time
@subPage_link Link to each page
@subPage_type Display the type of paging
When @subPage_type=1, it is normal paging mode
Example: 4523 records in total, 10 records displayed on each page, current page 1/453 [Home] [Previous page] [Next page] [Last page]
When @subPage_type=2, it is the classic paging style
Example: Current page 1/453 [Home] [Previous page] 1 2 3 4 5 6 7 8 9 10 [Next page] [Last page]
*/
function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
$this->each_disNums=intval($each_disNums);
$this->nums=intval($nums);
if(!$current_page){
$this->current_page=1;
}else{
$this->current_page=intval($current_page);
}
$this->sub_pages=intval($sub_pages);
$this->pageNums=ceil($nums/$each_disNums);
$this->subPage_link=$subPage_link;
$this->show_SubPages($subPage_type);
//echo $this->pageNums."--".$this->sub_pages;
}
/*
__destruct destructor, called when the class is no longer in use, is used to release resources.
*/
function __destruct(){
unset($each_disNums);
unset($nums);
unset($current_page);
unset($sub_pages);
unset($pageNums);
unset($page_array);
unset($subPage_link);
unset($subPage_type);
}
/*
The show_SubPages function is used in the constructor. And used to determine what kind of paging to display
*/
function show_SubPages($subPage_type){
if($subPage_type == 1){
$this->subPageCss1();
}elseif ($subPage_type == 2){
$this->subPageCss2();
}
}
/*
Function used to initialize the paging array.
*/
function initArray(){
for($i=0;$i<$this->sub_pages;$i++){
$this->page_array[$i]=$i;
}
return $this->page_array;
}
/*
construct_num_Page This function is used to construct the displayed entries
Even if: [1][2][3][4][5][6][7][8][9][10]
*/
function construct_num_Page(){
if($this->pageNums < $this->sub_pages){
    $current_array=array(); 
     for($i=0;$i<$this->pageNums;$i++){  
     $current_array[$i]=$i+1; 
     } 
    }else{ 
    $current_array=$this->initArray(); 
     if($this->current_page <= 3){ 
      for($i=0;$i
      $current_array[$i]=$i+1; 
      } 
     }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){ 
      for($i=0;$i
      $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i; 
      } 
     }else{ 
      for($i=0;$i
      $current_array[$i]=$this->current_page-2+$i; 
      } 
     } 
    } 
      
    return $current_array; 
   } 
     
  /*
   构造普通模式的分页
   共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
   */ 
  function subPageCss1(){ 
   $subPageCss1Str=""; 
   $subPageCss1Str.="共".$this->nums."条记录,"; 
   $subPageCss1Str.="每页显示".$this->each_disNums."条,"; 
   $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 "; 
    if($this->current_page > 1){ 
    $firstPageUrl=$this->subPage_link."1"; 
    $prewPageUrl=$this->subPage_link.($this->current_page-1); 
    $subPageCss1Str.="[首页] "; 
    $subPageCss1Str.="[上一页] "; 
    }else { 
    $subPageCss1Str.="[首页] "; 
    $subPageCss1Str.="[上一页] "; 
    } 
      
    if($this->current_page < $this->pageNums){ 
    $lastPageUrl=$this->subPage_link.$this->pageNums; 
    $nextPageUrl=$this->subPage_link.($this->current_page+1); 
    $subPageCss1Str.=" [下一页] "; 
    $subPageCss1Str.="[尾页] "; 
    }else { 
    $subPageCss1Str.="[下一页] "; 
    $subPageCss1Str.="[尾页] "; 
    } 
      
    echo $subPageCss1Str; 
      
   } 
     
     
  /*
   构造经典模式的分页
   当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
   */ 
  function subPageCss2(){ 
   $subPageCss2Str=""; 
   $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页 "; 
      
      
    if($this->current_page > 1){ 
    $firstPageUrl=$this->subPage_link."1"; 
    $prewPageUrl=$this->subPage_link.($this->current_page-1); 
    $subPageCss2Str.="[首页] "; 
    $subPageCss2Str.="[上一页] "; 
    }else { 
    $subPageCss2Str.="[首页] "; 
    $subPageCss2Str.="[上一页] "; 
    } 
      
   $a=$this->construct_num_Page(); 
    for($i=0;$i
    $s=$a[$i]; 
     if($s == $this->current_page ){ 
     $subPageCss2Str.="[".$s."]"; 
     }else{ 
     $url=$this->subPage_link.$s; 
     $subPageCss2Str.="[".$s."]"; 
     } 
    } 
      
    if($this->current_page < $this->pageNums){ 
    $lastPageUrl=$this->subPage_link.$this->pageNums; 
    $nextPageUrl=$this->subPage_link.($this->current_page+1); 
    $subPageCss2Str.=" [下一页] "; 
    $subPageCss2Str.="[尾页] "; 
    }else { 
    $subPageCss2Str.="[下一页] "; 
    $subPageCss2Str.="[尾页] "; 
    } 
    echo $subPageCss2Str; 
   } 
?>
 
演示代码:
require_once("SubPages.php"); 
//每页显示的条数 
  $page_size=20; 
//总条目数 
  $nums=1024; 
//每次显示的页数 
  $sub_pages=10; 
//得到当前是第几页 
  $pageCurrent=$_GET["p"]; 
  //if(!$pageCurrent) $pageCurrent=1; 
     
  $subPages=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,"test.php?p=",2); 
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477734.htmlTechArticle分页类代码 ?php class SubPages{ private $each_disNums;//每页显示的条目数 private $nums;//总条目数 private $current_page;//当前被选中的页 private $sub_pages;...
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