本文實例為大家分享了php封裝顯示頁碼的分頁類,供大家參考,具體內(nèi)容如下
一、代碼
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{//創(chuàng)建Page類并繼承Mysql類 private $pagesize;//每頁顯示的記錄數(shù) private $page;//當(dāng)前是第幾頁 private $pages;//總頁數(shù) private $total;//查詢的總記錄數(shù) private $pagelen;//顯示的頁碼數(shù) private $pageoffset;//頁碼的偏移量 private $table;//欲查詢的表名 function __construct($pagesize,$pagelen,$table){ if($_GET['page']=="" || $_GET['page']<0){//判斷地址欄參數(shù)page是否有值 $this->page=1;//當(dāng)前頁定義為1 }else{ $this->page=$_GET['page'];//當(dāng)前頁為地址欄參數(shù)的值 } $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);//獲得查詢的總記錄數(shù) $this->pages=ceil($this->total/$this->pagesize);//計算總頁數(shù) $this->pageoffset=($this->pagelen-1)/2;//計算頁碼偏移量 } function sel(){ $sql=mysql_query("select * from $this->table limit ".($this->page-1)*$this->pagesize.",".$this->pagesize);//查詢當(dāng)前頁顯示的記錄 return $sql;//返回查詢結(jié)果 } function myPage(){ $message="第".$this->page."頁/共".$this->pages."頁 ";//輸出當(dāng)前第幾頁,共幾頁 if($this->page==1){//如果當(dāng)前頁是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){//如果當(dāng)前頁小于頁碼的偏移量 $minpage=1;//顯示的最小頁數(shù)為1 $maxpage=$this->pagelen;//顯示的最大頁數(shù)為頁碼的值 }elseif($this->page>$this->pages-$this->pageoffset){//如果當(dāng)前頁大于總頁數(shù)減去頁碼的偏移量 $minpage=$this->pages-$this->pagelen+1;//顯示的最小頁數(shù)為總頁數(shù)減去頁碼數(shù)再加上1 $maxpage=$this->pages;//顯示的最大頁數(shù)為總頁數(shù) }else{ $minpage=$this->page-$this->pageoffset;//顯示的最小頁數(shù)為當(dāng)前頁數(shù)減去頁碼的偏移量 $maxpage=$this->page+$this->pageoffset;//顯示的最大頁數(shù)為當(dāng)前頁數(shù)加上頁碼的偏移量 } for($i=$minpage;$i<=$maxpage;$i++){//循環(huán)輸出數(shù)字頁碼數(shù) if($i==$this->page){ $message.=$i."\n";//輸出沒有鏈接的數(shù)字 }else{ $message.="<a id='num' href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>\n";//輸出有鏈接的數(shù)字 } } if($this->page==$this->pages){//如果當(dāng)前頁等于最大頁數(shù) $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">標(biāo)題</td> <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">內(nèi)容</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(); ?>
二、運行結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持。
【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。