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

本文实例讲述了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基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

(0)

相关推荐

  • 小文件php+SQLite存储方案

    我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限.只能另装思路,采用php+SQLite解决问题,经过我测试,切实可行,现在推荐给大家. 现在公开代码: 创建数据库文件:php1.php 复制代码 代码如下: $db = new SQLite3('mysqlitedb.db'); //获取文件2进制流 $filename = "http://www.jb51.net/logo.gif"; $handle =

  • 分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html

    下面给大家分享了一段php代码,讲解将360浏览器导出的favdb的sqlite数据库文件转换为html,下面代码简单易懂,感兴趣的朋友看一下吧. php代码如下所示: <?php $book_mark_name = 'book_mark.html'; $content = file_get_contents('tb_fav.json'); var_dump($content); $content_list = json_decode($content,'utf-8'); $content_li

  • PHP实现的sqlite数据库连接类

    本文实例讲述了PHP实现的sqlite数据库连接类.分享给大家供大家参考.具体实现方法如下: 该sqlite数据库连接类就是利用了php与sqlite进行连接操作,代码如下: 复制代码 代码如下: */ lass db_class { var $conn=null; var $querynum = 0; /**  * 数据库连接,返回数据库连接标识符  *   * @param string $ 数据库服务器主机  * @param string $ 数据库服务器帐号  * @param str

  • php读取sqlite数据库入门实例代码

    SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. 它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快. 单

  • PHP SQLite类

    复制代码 代码如下: <? /** * SQLite类 * 2009-5-6 * 连万春 * */ class SQLite {     // 当前SQL指令     public $_mQueryStr = '';     // 当前结果     public $_mResult = null;     // SQLite连接句柄     protected $_mSqlite;     // 警告信息     protected $_mErrorInfo;     /**      * 数据

  • PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】

    本文实例讲述了PHP基于PDO实现的SQLite操作类.分享给大家供大家参考,具体如下: 直接代码: 注意:一定要写好数据库保存路径 <?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this->db = new PDO('sqlite:'.dirname(__FILE__).'\log.db'); $this->table_name=$tab; $this

  • PHP实现的简单操作SQLite数据库类与用法示例

    本文实例讲述了PHP实现的简单操作SQLite数据库类与用法.分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java等,还有ODBC接口,同样比起MySQL.PostgreSQL这两款开源世界著名

  • php使用pdo连接sqlite3的配置示例

    本文实例讲述了php使用pdo连接sqlite3的配置方法.分享给大家供大家参考,具体如下: 刚刚开始使用php+sqlite 的时候,一直以为自己使用的是sqlite3 ,其实不是,php从php5 >=5.3.0 的时候才开始默认支持sqlite3 可参照官方文档http://www.php.net/manual/zh/sqlite3.open.php 默认的方法接口: public void SQLite3::open ( string $filename [, int $flags =

  • thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)

    本文实例讲述了thinkPHP连接sqlite3数据库的简单实现方法.分享给大家供大家参考,具体如下: 首先检查Thinkphp目录下\Lib\Driver\Db目录里有没有DbPdo.class.php 这个文件. 如果没有就去这里下吧:http://www.thinkphp.cn/extend/205.html 然后再确认打开了PHP对sqlite的扩展支持,extension=php_sqlite.dll 连接sqlite3数据库: 在config.php 文件中添加如下配置: 'DB_T

  • PHP+sqlite数据库操作示例(创建/打开/插入/检索)

    本文实例讲述了PHP+sqlite数据库操作的方法.分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非 常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相 结合,比如Tcl.PHP.Java等,还有ODBC接口,同样比起MySQL.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理 速度比他们都

  • php SQLite学习笔记与常见问题分析第1/2页

    直到学会! 学之前找资料 SQLite的sql ATTACH DATABASE BEGIN TRANSACTION comment COMMIT TRANSACTION COPY CREATE INDEX CREATE TABLE CREATE TRIGGER CREATE VIEW DELETE DETACH DATABASE DROP INDEX DROP TABLE DROP TRIGGER DROP VIEW END TRANSACTION EXPLAIN expression INSE

随机推荐