`
cakin24
  • 浏览: 1383017 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

php封装一个显示页码的分页类

    博客分类:
  • PHP
阅读更多

一 代码

conn.php
<?php
	class Mysql{
		public function __construct(){
			$this->connect();
		}
		public function connect(){
			$conn=mysql_pconnect('localhost','root','root') or die("Connect MySQL False");
			mysql_select_db('db_database20',$conn) or die("Connect DB False");
			mysql_query("SET NAMES utf8");
		}
	}
?>
 
index.php
<link rel="stylesheet" type="text/css" href="css/style.css">
<?php
	include_once("conn.php");//包含conn.php文件
	class Page extends Mysql{//创建Page类并继承Mysql类
	  private $pagesize;//每页显示的记录数
	  private $page;//当前是第几页
	  private $pages;//总页数
	  private $total;//查询的总记录数
	  private $pagelen;//显示的页码数
	  private $pageoffset;//页码的偏移量
	  private $table;//欲查询的表名
	  function __construct($pagesize,$pagelen,$table){
        if($_GET['page']=="" || $_GET['page']<0){//判断地址栏参数page是否有值
		  $this->page=1;//当前页定义为1
		}else{
		  $this->page=$_GET['page'];//当前页为地址栏参数的值
		}
		$this->pagesize=$pagesize;
		$this->pagelen=$pagelen;
		$this->table=$table;
		new Mysql();//实例化Mysql类
		$sql=mysql_query("select * from $this->table");//查询表中的记录
		$this->total=mysql_num_rows($sql);//获得查询的总记录数
		$this->pages=ceil($this->total/$this->pagesize);//计算总页数
		$this->pageoffset=($this->pagelen-1)/2;//计算页码偏移量
	  }
	  function sel(){
	    $sql=mysql_query("select * from $this->table limit ".($this->page-1)*$this->pagesize.",".$this->pagesize);//查询当前页显示的记录
		return $sql;//返回查询结果
	  }
	  function myPage(){
	    $message="第".$this->page."页/共".$this->pages."页&nbsp;&nbsp;&nbsp;";//输出当前第几页,共几页
		if($this->page==1){//如果当前页是1
		  $message.="首页&nbsp;上一页&nbsp;&nbsp;&nbsp;";//输出没有链接的文字
		}else{
		  $message.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a>&nbsp;";//输出有链接的文字
		  $message.="<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'>上一页</a>&nbsp;&nbsp;";//输出有链接的文字
		}
		if($this->page<=$this->pageoffset){//如果当前页小于页码的偏移量
		  $minpage=1;//显示的最小页数为1
		  $maxpage=$this->pagelen;//显示的最大页数为页码的值
		}elseif($this->page>$this->pages-$this->pageoffset){//如果当前页大于总页数减去页码的偏移量
		  $minpage=$this->pages-$this->pagelen+1;//显示的最小页数为总页数减去页码数再加上1
		  $maxpage=$this->pages;//显示的最大页数为总页数
		}else{
		  $minpage=$this->page-$this->pageoffset;//显示的最小页数为当前页数减去页码的偏移量
		  $maxpage=$this->page+$this->pageoffset;//显示的最大页数为当前页数加上页码的偏移量
		}
		for($i=$minpage;$i<=$maxpage;$i++){//循环输出数字页码数
		  if($i==$this->page){
		    $message.=$i."\n";//输出没有链接的数字
		  }else{
		    $message.="<a id='num' href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>\n";//输出有链接的数字
		  }
		}
		if($this->page==$this->pages){//如果当前页等于最大页数
		  $message.="&nbsp;&nbsp;下一页&nbsp;尾页";//显示没有链接的文字
		}else{
		  $message.="&nbsp;&nbsp;<a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>下一页</a>&nbsp;";//显示有链接的文字
		  $message.="<a href='".$_SERVER['PHP_SELF']."?page=".$this->pages."'>尾页</a>";//显示有链接的文字
		}
		return $message;//返回变量的值
	  }
    }
?>
<table border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#FF0000">
  <tr>
    <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">ID:</td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">标题</td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">内容</td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">时间</td>
  </tr>
<?php
    $p=new Page('3','3','tb_demo01');
	$rs=$p->sel();
	while($rst=mysql_fetch_row($rs)){
?>
  <tr>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[0] ?></td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[1] ?></td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[2] ?></td>
	<td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[3] ?></td>
  </tr>
<?php }?>
</table>
<?php
    echo $p->myPage();
?>
 
二 运行结果


 
  • 大小: 3.7 KB
1
0
分享到:
评论

相关推荐

    php封装的page分页类.zip

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

    封装好的PHP分页类

    本篇介绍一个封装良好的PHP分页类,该类支持自定义样式、显示形式,并且具有简单的调用方式。 #### 分页类的功能与实现 该PHP分页类提供了丰富的自定义选项,使得开发者可以根据具体需求来定制分页显示的效果。...

    封装好的php+mysql分页类

    - 跳转输入框:提供一个输入框让用户直接输入页码跳转,提高操作便捷性。 9. **错误处理**: 类应包含适当的错误处理机制,当SQL查询失败或分页参数不正确时,能提供有用的错误信息。 总的来说,这个"封装好的...

    php显示页码分页类的封装

    【PHP显示页码分页类的封装】是一个重要的概念,特别是在处理大数据量的网页展示时。在PHP中,为了提高用户体验,通常会采用分页的方式来显示数据,而不是一次性加载所有内容。下面将详细介绍如何封装一个PHP显示...

    php实现数据分页封装

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

    万能的php分页类实例代码

    总结,这个“万能”的PHP分页类实例代码为PHP开发者提供了一个强大且灵活的工具,帮助他们高效地实现分页功能,优化用户体验,提高网站性能。通过对类的各个方法进行调整和扩展,可以适应不同的项目需求,实现更加...

    php的一个分页类.zip

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

    常用php封装分页工具类

    本篇文章将详细解析如何封装一个PHP分页工具类,以便在不同项目中重复使用。 首先,我们需要了解分页的基本原理。分页主要涉及两个关键参数:当前页数和每页显示的条目数。通过这两个参数,我们可以计算出从数据库...

    php实现的分页类.zip

    本资源“php实现的分页类.zip”提供了一个实用的PHP类库,可以帮助开发者轻松实现网页的分页功能。下面将详细探讨PHP分页类的核心原理、设计模式以及如何在实际项目中应用。 一、分页类的设计原理 1. 计算总页数:...

    php 分页类 很实用的一个分页类

    分页类是一个封装了分页逻辑的对象,它可以计算总页数,生成页码链接,以及根据当前页获取对应的数据。它通过接收总的记录数和每页显示的条数来计算总页数,并根据当前页数来截取数据库查询结果。 2. **工作原理**...

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

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

    一个简单好用的php分页类代码.zip

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

    PHP分页类curpage

    "PHP分页类curpage"是用于实现这一功能的一个自定义类,下面我们将深入探讨这个类的原理、设计思路以及如何使用。 首先,我们需要理解分页的基本概念。分页通常涉及到两个关键参数:当前页(currentPage)和每页...

    php分页类包括动态和静态

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

    PHP经典分页类_适合初学者学习

    本资源提供了一个经典的PHP分页类,对于初学者来说,是一个很好的学习起点。下面我们将深入探讨这个分页类的工作原理和关键知识点。 1. **分页类的基本概念** 分页类是一种对象,封装了对数据库查询结果进行分页...

    php分页类-对URL有多个参数的也能分页,可自定义分页模板

    一个分页类通常是一个PHP类文件,它封装了分页所需的所有逻辑,包括计算总页数、生成链接以及控制页面跳转等。这样的类可以方便地在项目中复用,提高代码的可维护性。 描述中提到,这个分页类能够处理URL中存在多个...

    一个php数字分页类库.zip

    这个“一个php数字分页类库.zip”提供的就是一个已经封装好的PHP分页类库,可以帮助开发者快速实现分页功能。 分页的基本原理如下: 1. **获取当前页面**:用户通过URL中的参数(通常是`page`或`p`)来指定当前...

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

    这段代码展示了如何在PHP中设计一个实用的分页类,包括数据库连接、查询和分页逻辑的封装。它不仅提供了数据库连接的灵活性(持久连接或常规连接),还考虑了字符集的问题,以确保数据完整性。分页类则实现了高效的...

    一个很好的可以实现php分页的类

    标题提到的“一个很好的可以实现PHP分页的类”显然是一种高效的解决方案,它封装了分页的逻辑,使得开发者能够更便捷地在项目中实现分页功能。下面我们将详细探讨PHP分页类的设计原理、实现方法以及如何在实际应用中...

Global site tag (gtag.js) - Google Analytics