当前位置: 首页 > 编程笔记 >

php显示页码分页类的封装

岳正阳
2023-03-14
本文向大家介绍php显示页码分页类的封装,包括了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."页&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(); 
?> 

二、运行结果

 

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

 类似资料:
  • 本文向大家介绍PHP封装的分页类与简单用法示例,包括了PHP封装的分页类与简单用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP封装的分页类与简单用法。分享给大家供大家参考,具体如下: 分页类的封装如下: page.php 一个调用分页类的例子 userlist.php 运行结果: 数据库的封装之前写过,这里不在赘述: PHP封装mysqli基于面向对象的mysql数据库操作类

  • 本文向大家介绍CI分页类首页、尾页不显示的解决方法,包括了CI分页类首页、尾页不显示的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CI分页类首页、尾页不显示的解决方法。分享给大家供大家参考,具体如下: 看了下手册说,每次都要重新去写一次呢些$config,可以新建一个文件放到config文件夹下面,考虑了下,config这个文件夹系统会自动加载,也就是说不管你访问什么页面这文件

  • 我已经使用PagedList为一个mvc项目创建了分页,在一个新的需求出现之前一切正常: null 任何建议都将不胜感激。

  • 我正在工作的wordpress与我自己的主题: 我有一个叫做展览的页面,在这个页面上我有两个类别:“当前”和“预览”。 当我发布一篇文章时,我想选择一个类别来显示文章的标题(永久链接)。类别不是按钮,它们只是不同帖子所属的“标题”。 我制作了一个名为“展览”的模板文件。php(见下面的代码),它应用于我在Wordpress中的展示页面。我不知道如何调用函数来显示类别名称,然后将类别属性化为我的帖子

  • 我已经用php5 fpm设置了一个nginx服务器。当我尝试加载网站时,我得到一个没有错误的空白页面。Html页面可以很好地使用,但php却不行。我尝试在php中打开显示错误。但是没有运气。php5-fpm。日志没有产生任何错误,nginx也没有。 nginx。形态 编辑 这是我的nginx错误日志:

  • 我正在使用基于Laravel和Twig的OctoberCMS。 十月有一个范围分页功能,但它缺乏我需要的功能,所以我必须使用Laravel返回结果和分页。 我有一个厨房分类和图像数据库记录。 我试图从URL中获取标识符,以过滤回数据库结果。 问题 代码返回自然图像并显示分页。但是当我点击一个页码时,url会变成或,但页面按钮停留在上,记录/图像不会更改。 这就像php在下一页重置,并再次显示第1页

  • 这篇文章展示了对DB2中的数据进行分页的一些操作: 在MySQL中,我可以使用 若要获取总行数,请执行以下操作。第一部分很容易在DB2的最新版本中复制。我在Google上找不到任何与第二个查询相当的结果(我不想要临时表、子查询或其他荒谬的低效解决方案)。

  • 使用Instagram Basic Display API获得的媒体结果是否可以使用分页?我已经阅读了以下文档,但它们没有使用分页的任何示例: https://developers.facebook.com/docs/instagram-basic-display-api/reference/media/children https://developers.facebook.com/docs/g