php 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.'">首页</a>
			<a href="'.$pre_urls.'">上一页</a>
			<a href="'.$next_urls.'">下一页</a>
			<a href="'.$end_urls.'">末页</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();
?>
时间: 2024-11-10 01:09:44

php sqlite分页。的相关文章

Android增高第九篇之GridView和SQLite实现分页表格

Android提高第九篇之GridView和SQLite实现分页表格http://blog.csdn.net/hellogv/archive/2010/11/18/6019301.aspx上次讲的Android上的SQLite分页读取,只用文本框显示数据而已,这次就讲得更加深入些,实现并封装一个SQL分页表格控件,不仅支持分页还是以表格的形式展示数据.先来看看本文程序运行的动画: 这个SQL分页表格控件主要分为“表格区”和“分页栏”这两部分,这两部分都是基于GridView实现的.网上介绍And

sqlite 时间函数及时间处理

SQLite分页显示:Select * From news order by id desc Limit 10 Offset 10这篇文章是根据 SQLite 官方 WIKI 里的内容翻译,如果有什么翻译不当的地方希望大家指出,毕竟我的英文水平实在很差. SQLite 包括以下五个时间函数: date(日期时间字符串, 修正符, 修正符, ……)time(日期时间字符串, 修正符, 修正符, ……)datetime(日期时间字符串, 修正符, 修正符, ……)julianday(日期时间字符串,

sqlite时间类型

SQLite分页显示:Select * From news order by id desc Limit 10 Offset 10这篇文章是根据 SQLite 官方 WIKI 里的内容翻译,如果有什么翻译不当的地方希望大家指出,毕竟我的英文水平实在很差. SQLite 包括以下五个时间函数: date(日期时间字符串, 修正符, 修正符, ……)time(日期时间字符串, 修正符, 修正符, ……)datetime(日期时间字符串, 修正符, 修正符, ……)julianday(日期时间字符串,

图解SQLite教程

以下均为自己操作成功的截图.无废话. SQLite3下载:http://pan.baidu.com/s/1o6jzyX0 解压后出现sqlite3.exe,拷贝到自己所需目录即可. 注意以下命令行是白色的,不是记事本. 1. 启动,创建数据库:查看数据库: 我操作的时候输完sqlite3 d:\test.db成功后,查看d盘,并无test.db文件,打完.database命令的时候,d盘才出现该文件. 2. 创建表,查看表,查看表结构,插入数据: 3. Sqlite分页的写法: 4. 查询结果输

解析SQLite中的常见问题与总结详解

1. 创建数据如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库. 2. 如何通过sqlite3.dll与sqlite3.def生成sqlite3.lib文件LIB /DEF:sqlite3.def /machine:IX86 3. sqlite3_open打开一个数据库时,如果数据库不存在就会新生成一个数据库文件.如果接着执行其他查询语句就会失败,比如sqlite3_prepare,编程中出现明明指定了数据库而且里面也有数据

一些 SQLite技巧

SQLite自增ID自段 使用方法为 INTEGER PRIMARY KEY AUTOINCREMENT 如: CREATE   TABLE  21andy ( id  INTEGER   PRIMARY   KEY  AUTOINCREMENT, 21andy  VARCHAR ( 100 )  NOT   NULL , date DATE ); 注意是AUTOINCREMENT, 和MySQL的写法不一样 SQLite清空表 SQLite没有TRUNCATE清空表命令,所以只能这样 DELE

php 操作sqlite类。增删改查,pdo链接

<p>直接代码:</p><p>注意:一定要写好数据库保存路径</p> <?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this->db = new PDO('sqlite:'.dirname(__FILE__).'\log.db'); $this->table_name=$tab; $this->tab

SQlite.GridView

1.baisu搜索关键字"GVTable testSQlite" 1.1.SimpleAdapter真不简单! - 文酱 - 博客园.html(https://www.cnblogs.com/wenjiang/p/3189082.html) 要构造一个SimpleAdapter,需要以下的参数: 1.Context context:上下文,这个是每个组件都需要的,它指明了SimpleAdapter关联的View的运行环境,也就是我们当前的Activity. 2.List<? ex

SQLite3初级使用

(1)SQL的指令格式 所有的SQL指令都是以分号(;)结尾的.如果遇到两个减号(--)则代表注解,sqlite3会略过去. (2)建立资料表 假设我们要建一个名叫film的资料表,只要键入以下指令就可以了: create table film(title, length, year, starring); 这样我们就建立了一个名叫film的资料表,里面有name.length.year.starring四个字段. 这个create table指令的语法为: create table table