php通用分頁類代碼實例

來源:互聯網
上載者:User
關鍵字 網路程式設計 PHP教程

php教程通用分頁類代碼

*/
class dividepage  //分頁類
{
private $page ; 當前頁
private $total ; 總的記錄數
private $pagesize;  每頁的記錄數
private $prepage ;  前一頁
private $nextpage; 後一頁
private $lastpage ; 最後一頁
private $url;   url
private $start; 當頁顯示記錄數開始條數
private $endp; 當頁顯示記錄數結束條數
private $first; 查詢開始數

建構函式
public function __construct($total,$pagesize,$url)
{
$this->total = intval($total);
$this->pagesize = intval($pagesize);
$this->url = $url;
$this->init();
}

 //初始化分頁資訊
 public function init()
 {
  $parse_url = parse_url($this->url);
& nbsp; print_r($parse_url);
  $url_query = $parse_url['query'];
  if(empty($url_query))
  {
   $this->page = 1;
   $this->url = $this ->url.'? page=';
  }
  else
  {
   preg_match("/(^|&)page=(.*)(&|$)/ui",$url_query,$temp);
   $this->page = intval($temp[2]);
   $this->url=preg_replace("/page=(.*)/","page=",$this->url);
  }

  $this->lastpage = ceil($this->total/$this->pagesize) ? ceil($this->total/$this->pagesize) :1 ;
  //最後一頁的頁碼,總數/每頁數向上取整,如果總數為0,則最後一頁為第一頁.
  $this->page = min($this->lastpage,$this->page)>0 ? min($this->lastpage,$this->page) :1 ;
  //當前頁大於最後一頁,則取最後一頁為當前頁,不大於0,則取1為當前頁.
  $this->first = ($this->page - 1)*$this->pagesize ; //計算sql查詢語句起始位置
  $this->prepage = $th is->page-1 ;                        //前一頁
  $this->nextpage = $this->page+1 ;       //後一頁
  $this->start = $this->total?$this->first +1:0;  //當頁記錄開始編號
  $ this->endp = min($this->total,$this->page*$this->pagesize);//當頁記錄結束編號
 }

public function getpageinfo()  //取得當前頁基本資訊,如:顯示第 1-5 條記錄,共 9 條記錄。
{
return '<span class="pageinfostyle">顯示第<span class = "numberstyle">'.$this->start.'-'.$this->endp .' </span>條記錄,共<span class = "numberstyle">'.$this->total.' </span>條記錄。 </span>';
}

public function getpagenav()//取得分頁導航如:首頁 上一頁 下一頁 尾頁
{
$nav = "";
if($this->lastpage == 1)
{
return $nav;
break;
}
$nav = '<a href ="'.$this->url.'1" class = "navpagestyle" >首頁</a>';
if($this->prepage)
{
$nav.= '<a href = "'.$this->url.$this->prepage.'" class = "navpagestyle">上一頁</a>';
}
else
{
$nav.= '<a  class = "navpagestyle">上一頁</a>';
}

  if($this->nextpage <=$this->lastpage)
  {
   $nav.= '<a href = "'.$this- >url.$this->nextpage.'" class = "navpagestyle">下一頁</a> ';
  }
  else
  {
   $nav.= '<a class = "navpagestyle">下一頁</a>';
  }
&n bsp; $nav.= '<a href = "'.$this->url.$this->lastpage.'" class = "navpagestyle" >尾頁</a>';
  return $nav;
 }

public function getjumpnav()  //下拉跳轉分頁
{
$nav = '<span class = "pageinfostyle">到第<select name= "jumpnav" size="1" class = "jumpnav" onchange ='window.loca tion = "'.$this->url.'" +this.value'>'." n";
for($i=1 ; $i<=$this->lastpage ; $i++)
{
if($i==$this->page)
{
$nav.= '<option value ="'.$i.'" selected>'.$i.'</option>'." n";
}
else
{
$nav.='<option value = "'.$i.'">'.$i.'</option>'." n";
}

}
$nav.='</select>頁,共<span class= "numberstyle">'.$this->lastpage.' </span>頁</span>';
return $nav;
}

public function getlimit()
{
return $this->first.",".$this->pagesize;
}

public function getallnav()  //獲取導航
{
return $this->getpageinfo().$this->getpagenav().$this->getjumpnav();
}
}

使用實例:
$sql1 = mysql教程_query("select * from sun_message");
$total=mysql_num_rows($sql1);//查詢到的資料的總條數
$pagesize = 5;//每頁顯示的記錄條數
$url = $_server['request_uri'];//請求的uri

$pageclass = new dividepage($total, $pagesize,$url); 創建分頁類,(類能自動初始化)
$limit =$pageclass->getlimit();//取得當前頁要顯示的記錄開始序號和每頁顯示條數,如:0, 5(顯示從0開始的5條記錄)
echo $dividepageclass->getallpagenav();//顯示所有分頁導航條,如:顯示第11-13條記錄,共13條記錄。 首頁 上一頁 下一頁 尾頁 到第 1 頁,共 3 頁

$sql2 = "select * from sun_message order by mid desc limit {$limit}"; 分頁內容輸出
$result=mysql_query($sql);
while($row=mysql_fetch_array($result))
{
echo "<hr><b>".$row[title]." | ".$row[author];
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.