PHP分页类

类文件(page.class.php):
<?php
/**
 * ---------------分页类---------------*
 */
class pageClass {
 private $myde_count;        //总记录数
 var $myde_size;             //每页记录数
 private $myde_page;         //当前页
 private $myde_page_count;   //总页数
 private $page_url;          //页面URL
 private $page_i;            //起始页
 private $page_ub;           //结束页
 var $page_limit;            //当前页记录起始数

 //构造函数
 function __construct($myde_count=0,$myde_size=1,$myde_page=1,$page_url)
 {
  $this->myde_count=$this->numeric($myde_count);
  $this->myde_size= $this->numeric($myde_size);
  $this->myde_page= $this->numeric($myde_page);
  $this->page_limit=($this->myde_page*$this->myde_size)-$this->myde_size;
  $this->page_url=$page_url;

  if($this->myde_page<1)$this->myde_page=1;
  if($this->myde_count<0)$this->myde_page=0;
  $this->myde_page_count=ceil($this->myde_count/$this->myde_size);
  if($this->myde_page_count<1)$this->myde_page_count=1;
  if($this->myde_page>$this->myde_page_count)
     $this->myde_page=$this->myde_page_count;
  $this->page_i=$this->myde_page-2;
  $this->page_ub=$this->myde_page+2;
  if($this->page_i<1){
   $this->page_ub=$this->page_ub+(1-$this->page_i);
   $this->page_i=1;
  }
  if($this->page_ub>$this->myde_page_count){
   $this->page_i=$this->page_i-($this->page_ub-$this->myde_page_count);
   $this->page_ub=$this->myde_page_count;
   if($this->page_i<1)$this->page_i=1;
  }
 }

 private function numeric($id)        //判断是否为数字
 {
  if(strlen($id)){
   if(!preg_match("^[0-9]+$^",$id)){
    $id=1;
   }else{
    $id=substr($id,0,11);
   }
  }else{
   $id=1;
  }
  return $id;
 }
 private function page_replace($page)   //地址替换
 {
  return str_replace("{page}",$page,$this->page_url);
 }
 private function myde_home()        //首页
 {
  if($this->myde_page!=1){
   return "<a href=\"".$this->page_replace(1)."\" title=\"首页\">首页</a>\n";
  }else{
   return "首页\n";
  }
 }
 private function myde_prev()       //上一页
 {
  if($this->myde_page!=1){
   return '<a href="'.$this->page_replace($this->myde_page-1)."\" title=\"上一页\">上一页</a>\n";  //单引号
  }else{
   return "上一页\n";
  }
 }
 private function myde_next()      //下一页
 {
  if($this->myde_page!=$this->myde_page_count){
   return "<a href=\"".$this->page_replace($this->myde_page+1)."\" title=\"下一页\">下一页</a>\n";
  }else{
   return "下一页\n";
  }
 }
 private function myde_last()      //尾页
 {
  if($this->myde_page!=$this->myde_page_count){
   return "<a href=\"".$this->page_replace($this->myde_page_count)."\" title=\"尾页\">尾页</a>\n";
  }else{
   return "尾页\n";
  }
 }

 function myde_write($id='page')   //输出
 {
  $str ="<div id=\"".$id."\" class=\"admin_pages\">\n <ul>\n ";
  $str.="总记录:<span>".$this->myde_count."</span>条 \n";
  $str.="<span>".$this->myde_page."</span> / <span>".$this->myde_page_count."</span>页  \n";
  $str.=$this->myde_home();
  $str.=$this->myde_prev();
  for($page_for_i=$this->page_i;
      $page_for_i<=$this->page_ub;$page_for_i++){
      if($this->myde_page==$page_for_i){
       $str.="<font color=red><b>".$page_for_i."</b></font> \n";
      }else{
       $str.="<a href=\"".$this->page_replace($page_for_i)."\" title=\"第".$page_for_i."页\">";
       $str.=$page_for_i."</a>\n";
      }
  }
  
  $str.=$this->myde_next();
  $str.=$this->myde_last();
  $str.="</div>";
  return $str;
 }
}
/*
 $page=new pageClass(1000,5,$_GET['page'],'?page={page}');      //用于动态
 $page=new pageClass(1000,5,$_GET['page'],'list-{page}.html');  //用于静态或者伪静态
 $page->myde_write();
 */
?>


调用文件(index.php)

 

<?php
 include("page.class.php");
 mysql_connect("localhost","root","123")or die(mysql_error());
 mysql_select_db("php100class")or die(mysql_error());
 mysql_query("set names 'gbk'");

 $pagesize=5;
 $num_query=mysql_query("select count(*) from `news`");
 $rs=mysql_fetch_array($num_query);
 $count=$rs[0];
 $pagenum=ceil($count/$pagesize);
 $page=empty($_GET['page'])?1:$_GET['page'];

 echo "<table>";
 $sql="select * from news limit ".($page-1)*$pagesize.",".$pagesize;
 $query=mysql_query($sql);
 while($rs=mysql_fetch_array($query)){
 ?>
 <tr><td>标题:<?php echo $rs['id']."、".$rs['title']; ?> </td><td>作者:<?php echo $rs['author']; ?> </td>
 <td>时间:<?php echo $rs['time']; ?> </td></tr>
 <?php
 }
 echo "</table><br />";

  $page=new pageClass($count,$pagesize,$page,'?page={page}');      //用于动态
  echo $page->myde_write();
 mysql_close();
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值