php封裝好的頁碼分頁類

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了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(); ?>

二、運行結果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.