`
dcj3sjt126com
  • 浏览: 1876926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP分页过程化及分页类实现

    博客分类:
  • PHP
 
阅读更多

 

过程化分页

 

<?php
	header("Content-Type:text/html;charset=utf-8");
	mysql_connect('localhost','root','root');
	mysql_select_db('test');
	$sql="select * from test where 1";
	$result=mysql_query($sql);
	$total_num=mysql_num_rows($result);//查出一共有多少条记录
	$show_num=3;//显示多少条
	$total_pages=ceil($total_num/$show_num);//获取总的页数,ceil向上去整,floor向下
	$current=isset($_GET['page'])?$_GET['page']:1;//当前页号
	$next=($current==$total_pages)?false:$current+1;
	$prev=($current==1)?false:$current-1;
	$offset=($current-1)*$show_num;
	$sql="select * from goods limit $offset,3";//offset为偏移量,代表查询时候,数据库起始位置
	$result=mysql_query($sql);
	mysql_close();
?>

<table>
	<tr><th>id</th><th>name</th><th>price</th><th>mprice</th></tr>
	<?php while($arr=mysql_fetch_assoc($result)){
		$id=$arr['id'];
		$name=$arr['name'];
		$price=$arr['price'];
		$mprice=$arr['mprice'];
	?>
		<tr><td><?php echo $id ?></td><td><?php echo $name ?></td><td><?php echo $price ?></td><td><?php echo $mprice ?></td></tr>
	<?php } ?>
	<tr><td colspan="4">
		<?php
			echo "一共有{$total_num}条记录,显示{$show_num}条,{$current}/{$total_pages}";
			echo "首页";
			if(!$prev){
				echo "上一页";
			}else{
				echo "<a href='fenye.php?page={$prev}'>上一页</a>";
			}
			if(!$next){
				echo "下一页";
			}else{
				echo "<a href='fenye.php?page={$next}'>下一页</a>";
			}
			echo "尾页";
			unset($result);
		?>
	</td></tr>
</table>
下面是分页类:
<?php

class page{

	//总页数
	protected $count;
	//当前页码
	protected $page;
	//总记录数,总条数
	protected $total;
	//上一页
	protected $prev='上一页';
	//下一页
	protected $next='下一页';
	//首页
	protected $first='首页';
	//尾页
	protected $last='尾页';
	//开始记录数
	protected $start;
	//结束记录数
	protected $end;
	//每页显示条数
	protected $num;
	//URL
	protected $url;
	//上一页数
	protected $prevNum;
	//下一页数
	protected $nextNum;


	//初使化成员属性
	public function __construct($url,$total,$num=5){
		$this->url=$url;
		$this->total=$total;
		$this->num=$num;
		$this->count=$this->getCount();
		$this->page=empty($_GET['page'])?1:(int)$_GET['page'];
		$this->prevNum=$this->getPrev();
		$this->nextNum=$this->getNext();
		$this->start=$this->getStart();
		$this->end=$this->getEnd();

	}

	protected function getStart(){

		return ($this->page-1)*$this->num+1;
		
	}

	protected function getEnd(){

		return min($this->page*$this->num,$this->total);

	}

	protected function getNext(){

		if($this->page>=$this->count){
			
			return false;

		}else{

			return $this->page+1;
		}

	}

	protected function getPrev(){

		if($this->page<=1){
			return false;
		}else{

			return $this->page-1;
		}

	}

	protected function getCount(){
		return ceil($this->total/$this->num);
	}
	//
	//
	//得到偏移量  limit 偏移量,数量   limit 0,5   5,5  10,5  

	public function getOffset(){

		return ($this->page-1)*$this->num;
	}


	//得到分页效果
	//
	//search.php?keywords=手机&page=1
	//
	//第x页   从第n条记录到第n条记录  共x页 首页  上一页  下一页  尾页

	public function getPage(){

		$string='第'.$this->page.'页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从第'.$this->start.'条记录到第'.$this->end.'条记录&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;共'.$this->count.'页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$this->url.'page=1">'.$this->first.'</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

		if($this->prevNum){
			$string.='<a href="'.$this->url.'page='.$this->prevNum.'">'.$this->prev.'</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

		}else{
			$string.=$this->prev.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		}


		if($this->nextNum){
			$string.='<a href="'.$this->url.'page='.$this->nextNum.'">'.$this->next.'</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

		}else{
			$string.=$this->next.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		}

		$string.='<a href="'.$this->url.'page='.$this->count.'">'.$this->last.'</a>';

	
		return $string;
	}

}




?>
 
0
3
分享到:
评论

相关推荐

    php封装的page分页类.zip

    "php封装的page分页类" 是一个专门用于处理这种需求的类库,它简化了PHP分页的实现过程,通过封装核心逻辑,使开发者能够快速、高效地实现分页功能。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性...

    php实现的分页类.zip

    下面将详细探讨PHP分页类的核心原理、设计模式以及如何在实际项目中应用。 一、分页类的设计原理 1. 计算总页数:分页类首先需要获取数据库中的总记录数,然后根据每页显示的数据量(通常称为每页条数)来计算总...

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

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

    一个很好的分页类php分页类

    标题中的"一个很好的分页类php分页类"暗示我们这里有一个专门用于实现分页功能的PHP类。这个类可能包含了一系列方法,用于计算总页数、生成页码链接以及处理用户请求的特定页面。 `page.class.php`可能是这个分页类...

    php实现数据分页的通用方法类.zip

    在PHP开发中,数据分页是一项...总的来说,这个通用方法类简化了PHP应用程序中的数据分页过程,提高了代码的可维护性和可扩展性。通过合理地利用此类库,开发者可以更专注于业务逻辑,而不用过于关注分页的实现细节。

    php分页类,功能很强大,直接调用类中的函数就可以

    2. **实例化分页类**:创建一个分页类的对象,传入必要的参数,如总记录数、每页显示的条目数等。 ```php $total_records = count($all_data); // 假设$all_data是所有数据 $per_page = 20; // 每页显示20条数据 $...

    自定义分页类+页面静态化+php

    这里提到的"自定义分页类+页面静态化+PHP"是一个关于如何在PHP环境中实现高效且可定制化的分页功能,并结合页面静态化技术提升网站性能的实践案例。 首先,让我们详细了解一下自定义分页类。分页类通常包含了计算总...

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    本压缩包“超强php分页打包 通用分页 万能分页 ajax分页 google分页”提供了一系列的分页解决方案,包括了基本的PHP分页、通用的分页实现、以及结合AJAX技术的动态分页,旨在满足各种项目需求。下面将详细介绍这些...

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

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

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

    3. **构造函数**:初始化分页类时接收必要的参数,如数据库连接对象、查询语句等。 4. **方法**: - `calculateTotalPages()`:根据每页条数和总记录数计算总页数。 - `getPaginationData()`:执行SQL查询获取指定...

    php智能分页类.zip

    `php智能分页类.zip`是一个压缩包,包含了实现这一功能的PHP类库,使得开发者能够更便捷地在项目中集成智能分页功能,避免了手动编写分页代码的繁琐过程。 首先,我们要理解这个智能分页类的基本工作原理。通常,...

    php实现数据分页封装

    创建一个名为`Page`的类,包含初始化、计算总页数、生成分页链接和获取当前页数据的方法。例如: ```php class Page { private $db; private $currentPage; private $itemsPerPage; public function __...

    php万能分页源码

    这些文件通常会包含对分页类的实例化、配置参数(如每页显示的记录数)以及调用相关方法来生成和处理分页的过程。通过查看这些文件,开发者可以学习到如何在实际代码中应用分页功能。 `index.htm`可能是HTML模板...

    php分页类包括动态和静态

    为了简化开发过程,可以创建一个PHP分页类,封装上述分页逻辑。分页类通常包括以下功能: 1. 初始化:接收数据库查询语句、每页显示数量、当前页码等参数。 2. 计算总页数:根据查询结果的总记录数进行计算。 3. ...

    php数据库分页功能实现

    3. **PHP分页导航链接生成** - 在实际应用中,除了显示数据外,还需要为用户提供方便的页面跳转功能。 - 通过循环生成每个页面的链接,用户点击后可以通过URL参数改变当前页面。 - 示例代码: ```php for ($i =...

    php完美分页类

    2. **实例化分页类**:创建分页类的对象,并传入必要的参数,如每页显示的数量、总记录数等。 3. **调用方法**:通过分页类的方法获取分页链接,然后在HTML模板中插入这些链接。 4. **执行数据查询**:根据分页类...

    php经典分页类 设定连接类型

    ### PHP分页类设计 `classpage`继承自`classdb`,主要用于实现分页功能,这在展示大量数据时十分关键,能够有效提升用户体验和服务器性能。 #### 分页参数设定 - `$sql`:用于查询总记录数的SQL语句。 - `$...

    xml存储留言方案php版-实现分页(源代码)

    XML(eXtensible Markup Language)是一...它展示了如何使用XML文件作为数据库的替代品,以及如何在PHP中实现基本的分页功能。然而,实际项目中可能需要考虑更多的因素,比如数据安全、性能优化以及更复杂的数据操作。

    PHP文件上传类+分页类+验证码类

    下面将详细讲解这三个类的用途、原理及如何使用。 1. **PHP文件上传类 (Fileupload.class.php)** 文件上传类主要是为了方便用户在Web端上传文件到服务器。`Fileupload.class.php`可能包含了以下关键功能: - **...

    php 分页 多种精美样式

    `ext_page.class.php`可能是用于分页的一个类文件,它可能包含了初始化分页参数、生成分页链接、获取当前页、计算总页数等功能。这样的类通常会有以下方法: 1. `__construct($totalRows, $perPage)`: 初始化总记录...

Global site tag (gtag.js) - Google Analytics