`
nakupanda
  • 浏览: 416722 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个简单易用的PHP分页类

    博客分类:
  • php
阅读更多
使用实例:
$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分页类代码.zip

    本资源提供了一个简单易用的PHP分页类代码,适用于那些希望快速实现分页功能的开发者。下面将详细介绍这个分页类的工作原理和使用方法。 1. 分页类的基本概念 分页类是一种封装了分页逻辑的对象,它通常包含计算...

    PHP分页类方便使用简单易读

    本篇文章将详细介绍一个名为"pages.php"的PHP分页类,它以其简单易用的特点,为开发者提供了一个快速实现分页功能的解决方案。 首先,我们来理解一下"pages.php"分页类的基本结构。此类通常会包含以下几个核心部分...

    简单PHP分页类的实现(内含测试数据库及数据库操作类)

    这个压缩包提供的"简单PHP分页类的实现"是一个实用工具,可以帮助开发者轻松地在网页上实现数据的分页显示。下面将详细介绍分页类的工作原理、如何使用以及相关数据库操作。 首先,PHP分页类的核心功能是计算总页数...

    我写的一个很详细的php分页类

    一个很详细的php分页类,非常方便,只用按注释输入参数就可以用了,非常简单方便,易用

    php分页,代码很简单

    本教程将详细介绍如何在PHP中实现简单易用的分页功能。 首先,理解分页的基本原理:分页通常是通过限制SQL查询返回的结果数量来实现的。例如,每次只获取一定数量(如10条)的数据,然后通过导航链接让用户在不同的...

    php智能分页类让你能快速的去设置页面的分页

    首先,标题提到的“php智能分页类”是一个预封装的PHP类,它的设计目的是简化分页的实现过程,避免开发者手动编写复杂的SQL查询和HTML代码。这样的类通常会包含以下关键组件: 1. **参数设置**:允许开发者设定如每...

    PHP简单漂亮的分页类

    本篇文章将深入探讨一个基于原生PHP的简单且美观的分页类,该类的设计灵感可能源自Bootstrap框架的分页样式。 首先,让我们了解分页的基本原理。分页的核心在于计算每一页应显示的数据量以及确定当前页的位置。在...

    php实现的分页类.zip

    总结,这个“php实现的分页类”资源为开发者提供了一个高效且易用的工具,能够帮助他们快速实现分页功能,提升用户体验。通过深入理解分页类的工作原理和设计模式,开发者可以更好地集成和定制这个类,满足项目的...

    php 图片按钮 分页类

    总的来说,“php 图片按钮 分页类”是一个实用的工具,它为PHP开发者提供了强大且易用的分页功能,通过图片按钮的引入,增加了分页的视觉吸引力。合理地利用这个类,可以提高项目的开发效率,同时增强网页的用户体验...

    PHP分页类,完美版(可以植入到MVC框架中)

    本文将详细讲解一个名为“PHP分页类,完美版”的工具,它适用于MVC框架,并具备多种分页模式,尤其适合新手学习和使用。 这个分页类的强大之处在于它提供了四种不同的分页模式,可以满足不同场景的需求。默认模式是...

    简单的php分页类库.zip

    这个“简单的php分页类库”提供了一个便捷的方式来实现这一功能。下面我们将详细探讨这个类库的使用方法、核心原理以及如何将其应用于实际项目。 首先,这个类库的核心思想是封装了数据库查询和HTML分页链接的生成...

    php的一个分页类.zip

    这个"php的一个分页类.zip"文件提供了一个预封装的分页类,可以帮助开发者快速实现分页功能,无需从零开始编写代码。下面将详细介绍PHP分页类的核心概念、工作原理以及如何使用。 一、分页类核心概念 1. 总记录数...

    史上最强大的php分页类

    总结来说,“史上最强大的PHP分页类”应该是功能全面、易用且高度可定制的工具,它简化了开发者处理分页逻辑的复杂性,提高了代码的可读性和项目的可维护性。通过对上述关键知识点的理解和实践,开发者可以构建出...

    灵活实用的PHP分页类

    灵活实用的PHP分页,带演示页代码 /********************** * 灵活易用的PHP分页类 * 作者:深 蓝 * single * ********************/ 带注释

    php jquery无刷新分页(最简单版)

    在`jquery_page`这个文件夹中,可能包含了一个简单的实现。`index.php`可能是主页面,其中包含了HTML结构和jQuery脚本,而`page.php`可能是处理分页请求的PHP脚本。你可以打开`index.php`查看如何使用jQuery处理...

    PHP分页类简单易用很好

    很好用的~!还能强大!非常好! 错过了就是你的损失哈!!!!!!

    PHP写的一个分页类

    总的来说,PHP分页类是一个实用的工具,帮助开发者处理大量数据的显示,使得网站更具易用性和性能。通过理解和使用`page.php`,我们可以更好地掌握PHP分页的实现方式,并将其应用于各种实际项目中。

    PHP文章内容分页类 好用 简单实用

    1. **参数接收**:分页类需要接收两个主要参数,一个是总记录数(total_rows),另一个是每页显示的记录数(per_page)。这些参数帮助类计算总页数和当前页。 2. **计算总页数**:基于总记录数和每页显示的记录数,...

    PHP分页类分页的各种功能都有

    这里我们讨论的“PHP分页类”是一个专门为实现这种功能而设计的自定义类,它包含了实现分页所需的各种功能,如:下一页、上一页、首页、尾页以及页跳转等。通过这样的分页类,开发者可以方便地在项目中快速集成分页...

    很好用的php分页类

    PHP分页类就是用来封装这个过程,提供简单易用的接口供开发者调用。 分页类通常包含以下几个关键组件和方法: 1. **总记录数**:获取数据库中待分页数据的总数,这是计算总页数的基础。 2. **每页显示条数**:用户...

Global site tag (gtag.js) - Google Analytics