在php中分頁是我們開發中必須要用到的東西,但在覺得在php分頁比在asp中方便了很多,下面我來給各位同學詳細介紹人幾個不錯的php分頁類吧,這是我自己寫的一個php分頁實例,代碼如下:
- <html>
- <head>
- <title>簡單的PHP分頁程序</title>
- </head>
- <body>
- <?php
- //建立連接數據庫
- $linkID=@mysql_connect("Vevb.com","root","") or die("you could notconnect mysql");
- //連接的數據庫名稱
- @mysql_select_db("ceshi") or die("could not select database!");
- //取得記錄總數
- $query="SELECT count(*) FROM user";
- $rs = mysql_query($query);
- $myrows=mysql_fetch_array($rs);
- $numrows=$myrows[0];
- //設定每一頁顯示的記錄數
- $pagesize = 1;
- //計算總頁數
- $pages=intval($numrows/$pagesize);
- if($numrows%$pagesize)
- $pages++;
- //設置頁數
- if(isset($_POST['page']))
- $page=intval($_POST['page']);
- else{
- $page = 1; //沒有頁數則顯示第一頁;
- }
- //計算記錄偏移量
- $offset = ($page-1)*$pagesize;
- //讀取指定的記錄數
- $query1="select * from user limit $offset,$pagesize";
- $rs = mysql_query($query1);
- if($myrows=mysql_fetch_array($rs))
- {
- $i = 0;
- ?>
- <table width="80%" border="1">
- <tr>
- <td width="50%">用戶名</td>
- <td width="50%">密碼</td>
- </tr>
- <?php
- do{
- $i++;
- ?>
- <tr>
- <td width="50%"><?php echo $myrows["username"] ?></td>
- <td width="50%"><?php echo $myrows["password"] ?></td>
- </tr>
- <?php
- }
- while($myrows=mysql_fetch_array($rs));
- echo "</table>";
- }
- $first = 1;
- $prev =$page-1;
- $next = $page+1;
- $last=$pages;
- if($page>1)
- {
- echo "<a href='fenye.php?page=".$first."'>首頁</a>";
- echo "<a href='fenye.php?page=".$prev."'>上一頁</a>";
- }
- if($page<$pages)
- {
- echo "<a href='fenye.php?page=".$next."'>下一頁</a>";
- echo "<a href='fenye.php?page=".$last."'>最后一頁</a>";
- }
- echo "<div align = 'center'>共有" .$pages. "頁(" .$page. "/" .$pages.")";
- for($i=1; $i<$page; $i++)
- echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>";
- echo "[" .$page. "]";
- for($i=$page+1; $i<=$pages;$i++)
- echo "<a href='fenye.php?page=".$i."'>[".$i."]</a>";
- echo"</div>";
- ?>
- </body>
- </html>
上面代碼不能重復使用,后來整理了一個類,CSS代碼如下:
- #pages{display:block; text-align:center; overflow:hidden; color:#000; font-size:13px}
- #pages a{color:#333; text-decoration:none; font-family:Verdana,Geneva,sans-serif; padding:2px 3px; display:block}
- #pages li{float:left; display:inline-block; border:1px solid #999; margin-right:3px; margin-left:3px}
- #pages #spages{background:#CCC; font-weight:bold; color:#36C}
PHP分頁函數類源碼如下:
- <?php
- /*
- * 分頁模塊
- */
- interface Page{
- public function showpage();
- }
- class AdminPage implements Page{
- /*
- * 構造參數
- * SQL語句,每頁顯示數,url
- */
- private $sql;
- private $pageline; //每頁顯示多少行數據
- private $urlstr;
- private $nowpage;
- private $totalNum;
- private $pageNum;
- private $pageStr;// 形成分頁字符串
- public function __construct($sql,$p){
- $this->sql = $sql;
- $this->pageline = $p;
- $this->urlstr = $_SERVER['SCRIPT_NAME'];
- if(emptyempty($_GET['p'])){
- $this->nowpage = 1; //初始化當前頁數為1
- }else if(is_numeric($_GET['p'])){
- $this->nowpage = $_GET['p'];
- }else{
- $e = new Error(6);
- $e->show();
- }
- $s = new Sql();
- $this->totalNum = $s->results_exist_num($this->sql);
- $this->pageNum = ceil($this->totalNum/$this->pageline);
- }
- /*
- * 形式為:
- * 首頁| 上一頁| 1 | 2 | 3 | 4 | 5 |下一頁 | 末頁
- *
- *
- */
- public function showpage(){
- if($this->pageNum >=1 && $this->nowpage <5 ){
- if( $this->pageNum <=5){
- $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
- if($this->nowpage!=1){
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
- }
- for($i=1;$i<=$this->pageNum;$i++){
- if($i==$this->nowpage){
- $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }else{
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }
- }
- if($this->nowpage !=$this->pageNum){
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
- }
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
- echo $this->pageStr;
- }else if($this->pageNum>5){
- $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
- if($this->nowpage !=1){
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
- }
- for($i=1;$i<=5;$i++){
- if($i==$this->nowpage){
- $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }else{
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }
- }
- if($this->nowpage !=$this->pageNum){
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
- }
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
- echo $this->pageStr;
- }
- }else if($this->nowpage <= $this->pageNum -2 && $this->nowpage>=5){
- $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
- for($i=$this->nowpage-2;$i<=$this->nowpage+2;$i++){
- if($i==$this->nowpage){
- $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }else{
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }
- }
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
- echo $this->pageStr;
- }else if($this->nowpage>=$this->pageNum-3 && $this->nowpage <=$this->pageNum){
- $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首頁</a></li>';
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage-1).'" target="rframe" >上一頁</a></li>';
- for($i=$this->pageNum-4;$i<=$this->pageNum;$i++){
- if($i==$this->nowpage){
- $this->pageStr .='<li id="spages"><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }else{
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$i.'" target="rframe" >'.$i.'</a></li>';
- }
- }
- if($this->nowpage !=$this->pageNum){
- $this->pageStr .= '<li><a href="'.$this->urlstr.'?p='.($this->nowpage+1).'" target="rframe" >下一頁</a></li>';
- }
- $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末頁</a></li>';
- echo $this->pageStr;
- }
- }
- }
新聞熱點
疑難解答