Home  >  Article  >  Backend Development  >  Use PHP to implement a simple paging class and its detailed usage

Use PHP to implement a simple paging class and its detailed usage

PHP中文网
PHP中文网Original
2018-03-29 11:29:3924583browse

本文实例讲述了PHP实现的简单分页类及其详细的使用方法。分享给大家供大家参考,具体如下:

page;
 *
 * 获得总页数
 * $page->pageCount;
 *
 * 获得总记录数
 * $page->rowCount;
 *
 * 获得本页记录数
 * $page->listSize;
 *
 * 获得记录集
 * $page->list;
 * 记录集是一个2维数组,例:list[0]['id']访问第一条记录的id字段值.
 *
 * 获得页码列表
 * $page->getPageList();
 */
class Page
{
  //基础数据
  var $sql;
  var $page;
  var $pageSize;
  var $pageStr;
  //统计数据
  var $pageCount; //页数
  var $rowCount; //记录数
  //结果数据
  var $list = array(); //结果行数组
  var $listSize ;
  //构造函数
  function Page($conn,$sql_in,$page_in,$pageSize_in,$pageStr_in)
  {
    $this->sql = $sql_in;
    $this->page = intval($page_in);
    $this->pageSize = $pageSize_in;
    $this->pageStr = $pageStr_in;
    //页码为空或小于1的处理
    if(!$this->page||$this->page<1)
    {
      $this->page = 1;
    }
    //查询总记录数
    $rowCountSql = preg_replace("/([\w\W]*?select)([\w\W]*?)(from[\w\W]*?)/i","$1 count(0) $3",$this->sql);
    if(!$conn)
      $rs = mysql_query($rowCountSql) or die("bnc.page: error on getting rowCount.");
    else
      $rs = mysql_query($rowCountSql,$conn) or die("bnc.page: error on getting rowCount.");
    $rowCountRow = mysql_fetch_row($rs);
    $this->rowCount=$rowCountRow[0];
    //计算总页数
    if($this->rowCount%$this->pageSize==0)
      $this->pageCount = intval($this->rowCount/$this->pageSize);
    else
      $this->pageCount = intval($this->rowCount/$this->pageSize)+1;
    //SQL偏移量
    $offset = ($this->page-1)*$this->pageSize;
    if(!$conn)
   $rs = mysql_query($this->sql." limit $offset,".$this->pageSize) or 
   die("bnc.page: error on listing.");
    else
 $rs = mysql_query($this->sql." limit $offset,".$this->pageSize,$conn) or 
 die("bnc.page: error on listing.");
    while($row=mysql_fetch_array($rs))
    {
      $this->list[]=$row;
    }
    $this->listSize = count($this->list);
  }
  /*
   * getPageList方法生成一个较简单的页码列表
   * 如果需要定制页码列表,可以修改这里的代码,或者使用总页数/总记录数等信息进行计算生成.
   */
  function getPageList()
  {
    $firstPage;
    $previousPage;
    $pageList;
    $nextPage;
    $lastPage;
    $currentPage;
    //如果页码>1则显示首页连接
    if($this->page>1)
    {
      $firstPage = "pageStr."1\">首页";
    }
    //如果页码>1则显示上一页连接
    if($this->page>1)
    {
      $previousPage = "pageStr.($this->page-1)."\">上一页";
    }
    //如果没到尾页则显示下一页连接
    if($this->page<$this->pageCount)
    {
      $nextPage = "pageStr.($this->page+1)."\">下一页";
    }
    //如果没到尾页则显示尾页连接
    if($this->page<$this->pageCount)
    {
      $lastPage = "pageStr.$this->pageCount."\">尾页";
    }
    //所有页码列表
    for($counter=1;$counter<=$this->pageCount;$counter++)
    {
      if($this->page == $counter)
      {
        $currentPage = "".$counter."";
      }
      else
      {
        $currentPage = " "."pageStr.$counter."\">".$counter.""." ";
      }
      $pageList .= $currentPage;
    }
    return $firstPage." ".$previousPage." ".$pageList." ".$nextPage." ".$lastPage." ";
  }
}
?>

   用法示例:

list;
foreach($rows as $row)
{
  echo $row['UserName']."
"; } echo $page->getPageList(); //输出分页列表 ?>


分页视频教程PHP+Mysql分页简单教程

Use PHP to implement a simple paging class and its detailed usage

视频链接地址://m.sbmmt.com/course/116.html

以上就是PHP实现的简单分页类及用法示例 php分页跳转 php分页循环 php数据分的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

相关文章:

php分页 PHP分页显示制作详细讲解

php分页类代码

php 分页原理详解

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