php mysql分页操作
2013-12-26 17:01
330 查看
首先建立NewsModle类用于操作数据库
在该类中有两个操作第一个获取 总记录数
另外一个是得到分页数据
然后建立一个用于操作分页数据的page类
<?php
require_once 'NewsModle_class.php';
class Pager
{
var $tablename; //数据来源
var $PageSize; //每页的数量
var $CurrentPageID = 1; //当前的页数
var $db;
var $NextPageID; //下一页
var $PreviousPageID; //上一页
var $numPages; //总页数
var $numItems; //总记录数
var $isFirstPage; //是否第一页
var $isLastPage; //是否最后一页
var $pageName;
public function __construct($tablename,$PageSize)
{
$this->tablename = $tablename;
//每个页面的
$this->PageSize = $PageSize;
$this->db = new NewsModle();
//得到条目数目
$this->numItems = $this->db->getCount($tablename);
$this->numPages = ceil($this->numItems/$PageSize);
echo $this->numPages;
}
public function showInfo()
{
if(isset($_GET["CurrentPageID"]))
{
$this->CurrentPageID = $_GET["CurrentPageID"];
}
if($this->CurrentPageID<=1)
{
echo "第{$this->CurrentPageID}页 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一页</a>";
}
else if($this->CurrentPageID>=$this->numPages)
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一页</a> 第{$this->CurrentPageID}页";
}
else
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一页</a> 第{$this->CurrentPageID}页 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一页</a>";
}
}
public function pre()
{
if($this->CurrentPageID <= 1)
{
return 1;
}
else
{
return $this->CurrentPageID-1;
}
}
public function nex()
{
if($this->CurrentPageID >= $this->numPages )
{
return $this->CurrentPageID;
}
else
{
return $this->CurrentPageID +1;
}
}
public function showData()
{
//得到数据
print_r($this->db->selectLimitPage($this) );
}
/**
* @return the $CurrentPageID
*/
public function getCurrentPageID()
{
return $this->CurrentPageID;
}
}
?>
运行结果如下:
在该类中有两个操作第一个获取 总记录数
//返回所有记录数目 public function getCount($tableName) { $sql = "select count(*) from {$tableName}"; $result=$this->mysqli->query($sql); $row = $result->fetch_assoc(); return $row["count(*)"]; }
另外一个是得到分页数据
//得到分页 public function selectLimitPage($pager) { $tableName = $pager->tablename; $offset = (($pager->CurrentPageID)-1)*($pager->PageSize); $pageSize = $pager->PageSize; $sql = "SELECT * FROM {$tableName} LIMIT {$offset},{$pageSize}"; if($result=$this->mysqli->query($sql)) { if($result->num_rows) { while($row=$result->fetch_assoc()) $allNews[] = new NewsToUser($row["title"],$row["decription"],$row["pic_url"],$row["artcile_url"]); $result->close(); return $allNews; } else{ $result->close(); $this->printError("没有获取到任何记录"); return FALSE; } } else{ $this->printError("数据查询失败:".$this->mysqli->error); return FALSE; } }
然后建立一个用于操作分页数据的page类
<?php
require_once 'NewsModle_class.php';
class Pager
{
var $tablename; //数据来源
var $PageSize; //每页的数量
var $CurrentPageID = 1; //当前的页数
var $db;
var $NextPageID; //下一页
var $PreviousPageID; //上一页
var $numPages; //总页数
var $numItems; //总记录数
var $isFirstPage; //是否第一页
var $isLastPage; //是否最后一页
var $pageName;
public function __construct($tablename,$PageSize)
{
$this->tablename = $tablename;
//每个页面的
$this->PageSize = $PageSize;
$this->db = new NewsModle();
//得到条目数目
$this->numItems = $this->db->getCount($tablename);
$this->numPages = ceil($this->numItems/$PageSize);
echo $this->numPages;
}
public function showInfo()
{
if(isset($_GET["CurrentPageID"]))
{
$this->CurrentPageID = $_GET["CurrentPageID"];
}
if($this->CurrentPageID<=1)
{
echo "第{$this->CurrentPageID}页 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一页</a>";
}
else if($this->CurrentPageID>=$this->numPages)
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一页</a> 第{$this->CurrentPageID}页";
}
else
{
echo "<a href='{$this->pageName}?CurrentPageID={$this->pre()}'>上一页</a> 第{$this->CurrentPageID}页 <a href='{$this->pageName}?CurrentPageID={$this->nex()}'>下一页</a>";
}
}
public function pre()
{
if($this->CurrentPageID <= 1)
{
return 1;
}
else
{
return $this->CurrentPageID-1;
}
}
public function nex()
{
if($this->CurrentPageID >= $this->numPages )
{
return $this->CurrentPageID;
}
else
{
return $this->CurrentPageID +1;
}
}
public function showData()
{
//得到数据
print_r($this->db->selectLimitPage($this) );
}
/**
* @return the $CurrentPageID
*/
public function getCurrentPageID()
{
return $this->CurrentPageID;
}
}
?>
运行结果如下:
相关文章推荐
- 【中文分词-全文搜索】Ubuntu 16.04 Mysql和PHP 配置 Sphinx-for-chinese 及Sphinx的排序筛选分页基本操作
- PHP基础------mysql分页
- php操作mysql事务深度测试-老默
- php操作mysql
- MySQL与php的连接操作要点
- PHP MySql的dql和dml操作的封装,成为固定的工具类
- 大约php,mysql,html数字寻呼和文本分页2分页样式供大家参考
- 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
- PHP开发学习笔记之mysql操作
- 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
- 简单实用的分页函数(Php+mysql)
- PHP操作mysql的幾種方法
- PHP MYSQL对数据库进行添加、修改、删除等一系列操作
- php操作mysql小结
- PHP操作mysql
- 2-mysql与PHP项目中一般操作
- php 分页操作(三)
- PHP学习 - mysql 操作介绍
- 学习笔记PHP(1)之mysql操作
- windows下php操作MySQL