<?php /* php 分頁類 只要實現分頁。不與資料庫教程串連。 如果是偽靜態 只需修改84行以下的A標籤即可 如 "<a href='index_".$i.".html'>".$i."</a>" (index_表示你的偽靜態地址) 其他的A標籤頁是一樣 */ /* 鄙人工作時間寫了個簡單實用的 php 分頁類 現和大家分享。。 QQ:348145486 email: tzk_php@163.com 歡迎大家一起學習交流 */ class Page{
public $page_size="20"; //每頁顯示的資料數目 public $page_num; //總的資料數目 public $page_url=""; //分頁的當前URL public $pageval; //分頁的當前頁 public $page_ys; //總的頁數 public $page_tf=false; //判斷能否執行分頁的值 public $page; /**********初始化分頁類************/ function __construct($page_num,$page_size=""){ $this->page_num=$page_num; //擷取所有需要顯示的資料數目 if($page_size!=""){ $this->page_size=$page_size; //擷取每頁顯示資料資料 } $this->page_url=$_SERVER['SCRIPT_NAME']; //擷取當前的URL地址 if($this->page_num>$this->page_size){ //判斷是否能執行分頁 $this->page_ys=ceil($this->page_num/$this->page_size); //擷取總的分頁數 $this->page_tf=true; //將分頁許可權複製以便下面再次判斷 } if(!empty($_GET['page'])){ //只允許頁碼在分頁數範圍內 if($_GET['page']>="1"){ if($_GET['page']<=$this->page_ys){ $this->pageval=$_GET['page']; }else{ $this->pageval=$this->page_ys; } }else{ $this->pageval="1"; } }else{ $this->pageval="1"; } $this->page=($this->pageval-1)*$this->page_size; //查詢資料庫資料時的第一條資料 } /************執行分頁 返回分頁按鈕**********/ function page_fy($val=""){ if($this->page_tf==true){ if($val==""){ return $this->page_style_one(); }else if ($val=="1"){ return $this->page_style_two(); }elseif ($val=="2"){ return $this->page_style_three(); } } }
/**********分頁按鈕 樣式一*********/ function page_style_one(){ if($this->pageval=="1"){ $up="1"; }else{ $up=$this->pageval-1; } if($this->pageval>=$this->page_ys){ $down=$this->page_ys; }else{ $down=$this->pageval+1; } $one="<a href='".$this->page_url."?page=1'>首頁</a>"; $two="<a href='".$this->page_url."?page=".$up."'>上一頁</a>"; $three="<a href='".$this->page_url."?page=".$down."'>下一頁</a>"; $four="<a href='".$this->page_url."?page=".$this->page_ys."'>末頁</a>"; return $page_echo = $one.$two.$three.$four; } /***********分頁按鈕 樣式二*************/ function page_style_two(){ //下面這個呢,邏輯很複雜,思維很林亂, $page_echo=""; if($this->pageval=="1"){ $up="1"; }else{ $up=$this->pageval-1; } if($this->pageval>=$this->page_ys){ $down=$this->page_ys; }else{ $down=$this->pageval+1; } $two="<a href='".$this->page_url."?page=".$up."'>上一頁</a>"; $three="<a href='".$this->page_url."?page=".$down."'>下一頁</a>"; if($this->page_ys>"6"){ if($this->pageval<=3){ $i=2; $i_to=5; }elseif ($this->pageval>=($this->page_ys-2)){ $i=$this->page_ys-4; $i_to=$this->page_ys-1; }else{ $i=$this->pageval-2; $i_to=$this->pageval+2; } if($this->pageval>4){ $page_one="..."; }else{ $page_one=""; } if($this->pageval<($this->page_ys-3)){ $page_two="..."; }else{ $page_two=""; } for ($i;$i<=$i_to;$i++){ $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>"; //如果是偽靜態 只需修改A標籤即可 如 "<a href='index_".$i.".html'>".$i."</a>" 其他的A標籤頁是一樣 } }else{ for ($i=2;$i<=($this->page_ys-1);$i++){ $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>"; } } return $two."<a href='".$this->page_url."?page=1'>1</a>".$page_one.$page_echo.$page_two."<a href='".$this->page_url."?page=".$this->page_ys."'>".$this->page_ys."</a>".$three; } /*****************分頁按鈕 樣式三 樣式3大家可以寫了。 *******************/ function page_style_three(){ return $this->page_style_two(); } } ?> |