php分页的实现方法有几种

发布时间:2021-09-16 17:13:00 作者:chen
来源:亿速云 阅读:132

本篇内容主要讲解“php分页的实现方法有几种”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php分页的实现方法有几种”吧!

1、通过“mysql_query”等函数将sql查询进行分页。

2、使用ajax的方法实现分页。

3、通过“function viewpage(p){...}”脚本实现分页。

实例

<?php
  class pager {
 
    public $sql; //SQL查询语句
 
    public $datanum; //查询所有的数据总记录数
 
    public $page_size; //每页显示记录的条数
 
    protected $_errstr;
 
    protected $_conn;
 
    protected $_query_id;
 
 
 
    public function query($query)///这个函数有问题,暂时可以不用
 
    {
 
    $ret = false;
 
    if (!empty($query)) {
 
      if ($this->_conn === false || !is_resource($this->_conn)) {
 
       warningLog(__METHOD__ . ': query sql with no connection', true);
 
      return false;
 
      }
 
    $this->_query_id = @mysql_query($query, $this->_conn);
 
    if ($this->_query_id === false) {
 
    $this->_errstr = @mysql_error();
 
    $ret = false;
 
     } else {
 
    $this->_errstr = 'SUCCESS';
 
    $ret = $this->_query_id;
 
      }
 
    }
 
     $msg = ($ret === false) ? 'false' : strval($ret);
 
     debugLog(__METHOD__.": [$msg] returned for sql query [$query]");
 
    return $ret;
 
    }
 
function __construct($sql,$page_size) {
 
      $result = mysql_query($sql);
 
      $datanum = mysql_num_rows($result);
 
      $this->sql=$sql;
 
      $this->datanum=$datanum;
 
      $this->page_size=$page_size;
 
    }
 
 
 
    //当前页数
 
    public function page_id() {
 
      if($_SERVER['QUERY_STRING'] == ""){
 
        return 1;
 
      }elseif(substr_count($_SERVER['QUERY_STRING'],"page_id=") == 0){
 
        return 1;
 
      }else{
 
        return intval(substr($_SERVER['QUERY_STRING'],8));
 
      }
 
    }
 
 
 
    //剩余url值
 
    public function url() {
 
      if($_SERVER['QUERY_STRING'] == ""){
 
        return "";
 
      }elseif(substr_count($_SERVER['QUERY_STRING'],"page_id=") == 0){
 
        return "&".$_SERVER['QUERY_STRING'];
 
      }else{
 
        return str_replace("page_id=".$this->page_id(),"",$_SERVER['QUERY_STRING']);
 
      }
 
    }
 
 
 
    //总页数
 
    public function page_num() {
 
      if($this->datanum == 0){
 
        return 1;
 
      }else{
 
        return ceil($this->datanum/$this->page_size);
 
      }
 
    }
 
//数据库查询的偏移量
 
    public function start() {
 
      return ($this->page_id()-1)*$this->page_size;
 
    }
 
 
 
    //数据输出
 
    public function sqlquery() {
 
      return $this->sql." limit ".$this->start().",".$this->page_size;
 
    }
 
 
 
    //获取当前文件名
 
    private function php_self() {
 
      return $_SERVER['PHP_SELF'];
 
    }
 
 
 
    //上一页
 
    private function pre_page() {
 
      if ($this->page_id() == 1) { //页数等于1
 
        return "url().">上一页 ";
 
      }elseif ($this->page_id() != 1) { //页数不等于1
 
        return "上一页 ";
 
      }
 
    }
 
 
 
    //显示分页
 
    private function display_page() {
 
      $display_page = "";
 
      if($this->page_num() <= 10){ //小于10页
 
        for ($i=1;$i<=$this->page_num();$i++) //循环显示出页面
 
          $display_page .= "".$i." ";
 
          return $display_page;
 
      }elseif($this->page_num() > 10){ //大于10页
 
        if($this->page_id() <= 6){
 
          for ($i=1;$i<=10;$i++) //循环显示出页面
 
            $display_page .= "".$i." ";
 
            return $display_page;
 
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() >= 4)){
 
          for ($i=$this->page_id()-5;$i<=$this->page_id()+4;$i++) //循环显示出页面
 
            $display_page .= "".$i." ";
 
 return $display_page;
 
        }elseif(($this->page_id() > 6) && ($this->page_num()-$this->page_id() < 4)){
 
          for ($i=$this->page_num()-9;$i<=$this->page_num();$i++) //循环显示出页面
 
            $display_page .= "".$i." ";
 
            return $display_page;
 
        }
 
      }
 
    }
 
 
 
    //下一页
 
    private function next_page() {
 
      if ($this->page_id() < $this->page_num()) { //页数小于总页数
 
        return "下一页 ";
 
      }elseif ($this->page_id() == $this->page_num()) { //页数等于总页数
 
        return "下一页 ";
 
      }
 
    }
 
 
 
    // 设置分页信息
 
    public function set_page_info() {
 
      $page_info = "共".$this->datanum."条 ";
 
      $page_info .= "url().">首页 ";
 
      $page_info .= $this->pre_page();
 
      $page_info .= $this->display_page();
 
      $page_info .= $this->next_page();
 
      $page_info .= "尾页 ";
 
      $page_info .= "第".$this->page_id()."/".$this->page_num()."页";
 
      return $page_info;
 
    }
 
 
 
  }
 
?>

到此,相信大家对“php分页的实现方法有几种”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. java实现换行的方法有几种
  2. php如何实现分页

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:php怎么设置常量

下一篇:怎么解决php curl无法post的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》