php基于SQLite实现的分页功能示例


Posted in PHP onJune 21, 2017

本文实例讲述了php基于SQLite实现的分页功能。分享给大家供大家参考,具体如下:

这里操作数据库文件使用的是前面文章《PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】》中的SQLite数据库操作类。废话不说,直接上代码:

<meta charset='utf-8'>
<?php
class SqlitePage{
  public function __construct()
  {
    $this->table_name='';
    $this->tj='';
    $this->page_size='';
    $this->current_page='';
    $this->total_page='';
    include_once 'sqlite_db.php';
    $this->db=new SqliteDB();//可以调用他的操作方法了
  }
  function entrance($table_name,$page_size,$tj='')//sql中不包含limit  page_size为每页显示条数
  {
    // 首先获取当前页
    // sql = "select * from tab where "+条件+" order by "+排序+" limit "+要显示多少条记录+" offset "+跳过多少条记录;
    $this->page_size=$page_size;
    $this->table_name=$table_name;
    $this->tj=$tj;
    $this->total_page=ceil($this->db->total($this->table_name,$this->tj)/$this->page_size);
    if (!isset($_GET['page'])) {
      $this->current_page=1;//如果没有page,则设置为默认第一页
    }
    else{
      $this->current_page=$_GET['page'];
    }
    if ($this->current_page>$this->total_page) {//当当前页数目大于总页数,则设置当前页数为总页数
      $this->current_page=$this->total_page;
    }
    if ($this->current_page<1) {//当当前页数目大于总页数,则设置当前页数为总页数
      $this->current_page=1;
    }
    $tj=$this->tj.' limit '.$this->page_size.' offset '.($this->current_page-1)*$this->page_size;
    $result=$this->db->query($this->table_name,$tj);
    return $result;
  }
  function page_bar()
  {
    $old_url = $_SERVER["REQUEST_URI"];
    $check = strpos($old_url, '?');
    $pre_urls='test';
    if ($check) {//如果urls中有?
      if(substr($old_url, $check+1) == '')
      { //有问号,但是后面没有跟任何参数
        $first_urls=$old_url.'page=1';//首页
        $pre_urls=$old_url.'page='.($this->current_page-1);//上一页;
        $next_urls=$old_url.'page='.($this->current_page+1);//下一页;
        $end_urls=$old_url.'page='.$this->total_page;//末页
      }
      else {//有问号,并且有参数
        if (isset($_GET['page'])) {//如果参数中包含page参数,则注销这个参数
          unset($_GET['page']);
          $old_url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.http_build_query($_GET);
        }
        $first_urls=$old_url.'&page=1';//首页
        $pre_urls=$old_url.'&page='.($this->current_page-1);//上一页;
        $next_urls=$old_url.'&page='.($this->current_page+1);//下一页;
        $end_urls=$old_url.'&page='.$this->total_page;//末页
      }
    }
    else{// 如果没有问号(也就是说后面没有任何参数,则直接跟)
      $first_urls=$old_url.'?page=1';
      $first_urls=$old_url.'?page=1';//首页
      $pre_urls=$old_url.'?page='.($this->current_page-1);//上一页;
      $next_urls=$old_url.'?page='.($this->current_page+1);//下一页;
      $end_urls=$old_url.'?page='.$this->total_page;//末页
    }
    // echo $this->table_name.'table_name';
    return '
    <div class="page">
      <a>【共'.$this->total_page.'页,第'.$this->current_page.'页】</a>
      <a href="'.$first_urls.'" rel="external nofollow" >首页</a>
      <a href="'.$pre_urls.'" rel="external nofollow" >上一页</a>
      <a href="'.$next_urls.'" rel="external nofollow" >下一页</a>
      <a href="'.$end_urls.'" rel="external nofollow" >末页</a>
    </div>
    ';
  }
  public function get_total_page()
  {
    return ceil($this->total_record/$this->page_size);
  }
}
// $page=new PrePage();
// $res=$page->entrance('log',10);
// echo "<hr />";
// foreach ($res as $key => $row) {
// echo $row['urls'].'<br />';
// }
// echo $page->page_bar();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
随机头像PHP版
Oct 09 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
May 23 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
php如何执行非缓冲查询API
Jul 22 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
php格式文件打开的四种方法
Feb 24 PHP
详解no input file specified 三种解决方法
Nov 29 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
Jun 21 #PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 #PHP
老生常谈PHP面向对象之标识映射
Jun 21 #PHP
PHP封装的PDO数据库操作类实例
Jun 21 #PHP
PHP基于ORM方式操作MySQL数据库实例
Jun 21 #PHP
php 猴子摘桃的算法
Jun 20 #PHP
详解php框架Yaf路由重写
Jun 20 #PHP
You might like
curl实现站外采集的方法和技巧
2014/01/31 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
Element Input组件分析小结
2018/10/11 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Python入门学习指南分享
2018/04/11 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
python suds访问webservice服务实现
2020/06/26 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
项目合作计划书
2014/01/09 职场文书
合作协议书怎么写
2014/04/18 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
兵马俑导游词
2015/02/02 职场文书
感恩节寄语2015
2015/03/24 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python