使用实例:
$sql = "select * from `table1`"; //一个简单的查询
$page = new Page('',$sql,$_GET['page'],20,"?page=");
$rows = $page->list;
foreach($rows as $row)
{
echo $row['title']."<br>";
}
echo $page->getPageList(); //输出分页列表
<?
/*
* 使用:
* $page = new Page(连接符,查询语句,当前页码,每页大小,页码符)
* 连接符:一个MYSQL连接标识符,如果该参数留空,则使用最近一个连接
* 查询语句:SQL语句
* 当前页码:指定当前是第几页
* 每页大小:每页显示的记录数
* 页码符:指定当前页面URL格式
*
* 使用例子:
* $sql = "select * from aa";
* $page = new Page($conn,$sql,$_GET['page'],4,"?page=");
*
* 获得当前页码
* $page->page;
*
* 获得总页数
* $page->pageCount;
*
* 获得总记录数
* $page->rowCount;
*
* 获得本页记录数
* $page->listSize;
*
* 获得记录集
* $page->list;
* 记录集是一个2维数组,例:list[0]['id']访问第一条记录的id字段值.
*
* 获得页码列表
* $page->getPageList();
*/
class Page
{
//基础数据
var $sql;
var $page;
var $pageSize;
var $pageStr;
//统计数据
var $pageCount; //页数
var $rowCount; //记录数
//结果数据
var $list = array(); //结果行数组
var $listSize ;
//构造函数
function Page($conn,$sql_in,$page_in,$pageSize_in,$pageStr_in)
{
$this->sql = $sql_in;
$this->page = intval($page_in);
$this->pageSize = $pageSize_in;
$this->pageStr = $pageStr_in;
//页码为空或小于1的处理
if(!$this->page||$this->page<1)
{
$this->page = 1;
}
//查询总记录数
$rowCountSql = preg_replace("/([\w\W]*?select)([\w\W]*?)(from[\w\W]*?)/i","$1 count(0) $3",$this->sql);
if(!$conn)
$rs = mysql_query($rowCountSql) or die("bnc.page: error on getting rowCount.");
else
$rs = mysql_query($rowCountSql,$conn) or die("bnc.page: error on getting rowCount.");
$rowCountRow = mysql_fetch_row($rs);
$this->rowCount=$rowCountRow[0];
//计算总页数
if($this->rowCount%$this->pageSize==0)
$this->pageCount = intval($this->rowCount/$this->pageSize);
else
$this->pageCount = intval($this->rowCount/$this->pageSize)+1;
//SQL偏移量
$offset = ($this->page-1)*$this->pageSize;
if(!$conn)
$rs = mysql_query($this->sql." limit $offset,".$this->pageSize) or die("bnc.page: error on listing.");
else
$rs = mysql_query($this->sql." limit $offset,".$this->pageSize,$conn) or die("bnc.page: error on listing.");
while($row=mysql_fetch_array($rs))
{
$this->list[]=$row;
}
$this->listSize = count($this->list);
}
/*
* getPageList方法生成一个较简单的页码列表
* 如果需要定制页码列表,可以修改这里的代码,或者使用总页数/总记录数等信息进行计算生成.
*/
function getPageList()
{
$firstPage;
$previousPage;
$pageList;
$nextPage;
$lastPage;
$currentPage;
//如果页码>1则显示首页连接
if($this->page>1)
{
$firstPage = "<a href=\"".$this->pageStr."1\">首页</a>";
}
//如果页码>1则显示上一页连接
if($this->page>1)
{
$previousPage = "<a href=\"".$this->pageStr.($this->page-1)."\">上一页</a>";
}
//如果没到尾页则显示下一页连接
if($this->page<$this->pageCount)
{
$nextPage = "<a href=\"".$this->pageStr.($this->page+1)."\">下一页</a>";
}
//如果没到尾页则显示尾页连接
if($this->page<$this->pageCount)
{
$lastPage = "<a href=\"".$this->pageStr.$this->pageCount."\">尾页</a>";
}
//所有页码列表
for($counter=1;$counter<=$this->pageCount;$counter++)
{
if($this->page == $counter)
{
$currentPage = "<b>".$counter."</b>";
}
else
{
$currentPage = " "."<a href=\"".$this->pageStr.$counter."\">".$counter."</a>"." ";
}
$pageList .= $currentPage;
}
return $firstPage." ".$previousPage." ".$pageList." ".$nextPage." ".$lastPage." ";
}
}
?>
分享到:
相关推荐
本资源提供了一个简单易用的PHP分页类代码,适用于那些希望快速实现分页功能的开发者。下面将详细介绍这个分页类的工作原理和使用方法。 1. 分页类的基本概念 分页类是一种封装了分页逻辑的对象,它通常包含计算...
本篇文章将详细介绍一个名为"pages.php"的PHP分页类,它以其简单易用的特点,为开发者提供了一个快速实现分页功能的解决方案。 首先,我们来理解一下"pages.php"分页类的基本结构。此类通常会包含以下几个核心部分...
这个压缩包提供的"简单PHP分页类的实现"是一个实用工具,可以帮助开发者轻松地在网页上实现数据的分页显示。下面将详细介绍分页类的工作原理、如何使用以及相关数据库操作。 首先,PHP分页类的核心功能是计算总页数...
一个很详细的php分页类,非常方便,只用按注释输入参数就可以用了,非常简单方便,易用
本教程将详细介绍如何在PHP中实现简单易用的分页功能。 首先,理解分页的基本原理:分页通常是通过限制SQL查询返回的结果数量来实现的。例如,每次只获取一定数量(如10条)的数据,然后通过导航链接让用户在不同的...
首先,标题提到的“php智能分页类”是一个预封装的PHP类,它的设计目的是简化分页的实现过程,避免开发者手动编写复杂的SQL查询和HTML代码。这样的类通常会包含以下关键组件: 1. **参数设置**:允许开发者设定如每...
本篇文章将深入探讨一个基于原生PHP的简单且美观的分页类,该类的设计灵感可能源自Bootstrap框架的分页样式。 首先,让我们了解分页的基本原理。分页的核心在于计算每一页应显示的数据量以及确定当前页的位置。在...
总结,这个“php实现的分页类”资源为开发者提供了一个高效且易用的工具,能够帮助他们快速实现分页功能,提升用户体验。通过深入理解分页类的工作原理和设计模式,开发者可以更好地集成和定制这个类,满足项目的...
总的来说,“php 图片按钮 分页类”是一个实用的工具,它为PHP开发者提供了强大且易用的分页功能,通过图片按钮的引入,增加了分页的视觉吸引力。合理地利用这个类,可以提高项目的开发效率,同时增强网页的用户体验...
本文将详细讲解一个名为“PHP分页类,完美版”的工具,它适用于MVC框架,并具备多种分页模式,尤其适合新手学习和使用。 这个分页类的强大之处在于它提供了四种不同的分页模式,可以满足不同场景的需求。默认模式是...
这个“简单的php分页类库”提供了一个便捷的方式来实现这一功能。下面我们将详细探讨这个类库的使用方法、核心原理以及如何将其应用于实际项目。 首先,这个类库的核心思想是封装了数据库查询和HTML分页链接的生成...
这个"php的一个分页类.zip"文件提供了一个预封装的分页类,可以帮助开发者快速实现分页功能,无需从零开始编写代码。下面将详细介绍PHP分页类的核心概念、工作原理以及如何使用。 一、分页类核心概念 1. 总记录数...
总结来说,“史上最强大的PHP分页类”应该是功能全面、易用且高度可定制的工具,它简化了开发者处理分页逻辑的复杂性,提高了代码的可读性和项目的可维护性。通过对上述关键知识点的理解和实践,开发者可以构建出...
灵活实用的PHP分页,带演示页代码 /********************** * 灵活易用的PHP分页类 * 作者:深 蓝 * single * ********************/ 带注释
在`jquery_page`这个文件夹中,可能包含了一个简单的实现。`index.php`可能是主页面,其中包含了HTML结构和jQuery脚本,而`page.php`可能是处理分页请求的PHP脚本。你可以打开`index.php`查看如何使用jQuery处理...
很好用的~!还能强大!非常好! 错过了就是你的损失哈!!!!!!
总的来说,PHP分页类是一个实用的工具,帮助开发者处理大量数据的显示,使得网站更具易用性和性能。通过理解和使用`page.php`,我们可以更好地掌握PHP分页的实现方式,并将其应用于各种实际项目中。
1. **参数接收**:分页类需要接收两个主要参数,一个是总记录数(total_rows),另一个是每页显示的记录数(per_page)。这些参数帮助类计算总页数和当前页。 2. **计算总页数**:基于总记录数和每页显示的记录数,...
这里我们讨论的“PHP分页类”是一个专门为实现这种功能而设计的自定义类,它包含了实现分页所需的各种功能,如:下一页、上一页、首页、尾页以及页跳转等。通过这样的分页类,开发者可以方便地在项目中快速集成分页...
PHP分页类就是用来封装这个过程,提供简单易用的接口供开发者调用。 分页类通常包含以下几个关键组件和方法: 1. **总记录数**:获取数据库中待分页数据的总数,这是计算总页数的基础。 2. **每页显示条数**:用户...