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" rel="external nofollow" >
<?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."页   ";//输出当前第几页,共几页
  if($this->page==1){//如果当前页是1
   $message.="首页 上一页   ";//输出没有链接的文字
  }else{
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a> ";//输出有链接的文字
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'>上一页</a>  ";//输出有链接的文字
  }
  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.="  下一页 尾页";//显示没有链接的文字
  }else{
   $message.="  <a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>下一页</a> ";//显示有链接的文字
   $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();
?> 

二、运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 精美漂亮的php分页类代码

    这是一款简单,方便,功能齐全的分页类,可以根据自己的需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方法: 1,在head里包含pager.css 复制代码 代码如下: <link href="pager.css" type="text/css" rel="stylesheet" /> 2,在分页处进行类的实例化: 复制代码 代码如下: <?php   

  • 整合了前面的PHP数据库连接类~~做成一个分页类!

    不知道学PHP有没有前途~哎越写越没劲 <?php  Class createdb    //类的开始  {  var $db= "localhost";//数据库地址;  var $dbname = "root";//用户名;  var $dbpwd = "";//密码;  var $dbtable = "mysql";//使用的数据库  var $conn;    //数据库连接;  var $result;    

  • 高效mongodb的php分页类(不使用skip)

    mongodb分页skip+limit分页要先查出所有结果再去跳过,这样如果查询页面越往后效率越低. 如果能够通过查询条件查出每页结果的最后一条记录,在用最后一条记录作为查询条件去查下一页,这样每次都查询页面size条记录,效率不会差. 具体代码如下:包含mongodb.class.php, page.class.php, test.php mongodb.class.php mongodb 操作类 复制代码 代码如下: <?php function show_error($message, $

  • PHP ajax 分页类代码

    <?php //本分页类不处理SQL; //大大的加快了分页功能 //http://blog.csdn.net/fkedwgwy //潇湘博客--潇湘 /** 演示 require_once('../libs/classes/page.class.php'); $page=new page(array('total'=>1000,'perpage'=>20)); echo 'mode:1<br>'.$page->show(); echo '<hr>mode:

  • PHP通用分页类page.php[仿google分页]

    page.php 复制代码 代码如下: <?php /** ** 通用php分页类.(仿Google样式) ** 只需提供记录总数与每页显示数两个参数.(已附详细使用说明..) ** 无需指定URL,链接由程序生成.方便用于检索结果分页. ** 表单采用GET方法提交,可保证在诸如查询之,删除之类的操作时,不丢失URL参数 **/ class Pager{ //IE地址栏地址 var $url; //记录总条数 var $countall; //总页数 var $page; //分页数字链接 v

  • ThinkPHP分页类使用详解

    一.首先需要在MsgManage控制器中加入分页方法 知识点:1.count函数的试用2.Page类实例化操作及相关参数了解3.limit函数了用4.show函数了解 编辑文件admin/Lib/Action/MsgManageAction.class.php 代码如下: 复制代码 代码如下: class MsgManageAction extends CommonAction {    public function index(){     import('ORG.Util.Page'); 

  • ThinkPHP使用心得分享-分页类Page的用法

    ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类: 复制代码 代码如下: import('ORG.Util.Page'); //Page类的引入$db = M('abc');//实例化数据表abc$where = array('id'=>'2';);//条件语句$where,例表中字段id的值为2$count = $db->where($where)->count();//获取符合

  • PHP 分页类代码(简单好用型)第1/2页

    [code] <?php // pager类 $page = $_GET 当前1/2页 12下一页阅读全文

  • mysql+php分页类(已测)

    复制代码 代码如下: <?php       /*      mysql_pager.class.php 三个参数. mysql_query()的结果, url变量page, 您要的每页记录数      例子在这个文件底部      淡水河边整理测试      */ class mysql_pager {         // define properties         var $page;         var $result;         var $results_per_pa

  • 两款万能的php分页类

    本文为大家分享个超级好用.万能的php分页类,具体的实现代码如下 第一款php分页类 <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * 分页类 * 使用方式: * $page = new Page(); * $page->init(1000, 20); * $page->setNotActiveTemplate('<

随机推荐