简单的php分页类
<?php //------------------------------------------------------------------------- //使用方法 //测试时还需要一张表 至少出现字段 announceID,announceContent //include db.php $db_host = 'localhost' ; $db_user = 'username' ; $db_password = 'password' ; $db_name = 'konwu' ; $db_prefix = 'konwu_' ; Global $db_prefix ; $conn =@mysql_connect( $db_host , $db_user , $db_password ); // utf-8 是默认设置 即使没有下面的一行也会默认 UTF-8 // 但是MYSQL数据库的默认是LATIN 拉丁字符 // 最好设置成 GBK UTF-8包含GBK 包含 LATIN //网页用UTF-8 显示 GBK 没关系 但如果 MYSQL写入时用UTF8有乱码风险,因为MYSQL安装时默认LATIN ,最好 SET GBK mysql_query( "SET NAMES 'UTF8'" ); mysql_select_db( $db_name , $conn ) or die ( 'none DB' ); //set page //@param set $errorURL = 'http://localhost:8080/htmls/error/index.html' ; $result = mysql_query( "SELECT * FROM konwu_messageannounce" ); $touNUM = mysql_num_rows( $result ); $config = array ( 'DB_PREFIX' => 'konwu_' , 'DB' => 'messageannounce' , 'PER_NUM' =>10, 'TOU_NUM' => $touNUM , 'ERROR_URL' => $errorURL , 'NUM_PAGE' => 'p' ); // use class $pages = new Pages; $getPage = $pages ->resultNUM( $config ); // //------------------------------------ class Pages{ public static $perNUM ; //每一页多少条 public static $touNUM ; //总共多少条 public static $pageNUM ; //总页数 public static $tables ; //表名 public static $errorURL ; // index URL public static $numPage ; //页面参数的标识 , function getInt( $config = array ()){ $this ->tables = $config [ 'DB_PREFIX' ]. $config [ 'DB' ] ? $config [ 'DB_PREFIX' ]. $config [ 'DB' ] : 'konwu_messageannounce' ; $this ->perNUM = $config [ 'PER_NUM' ] ? $config [ 'PER_NUM' ] : 10; $this ->touNUM = $config [ 'TOU_NUM' ] ? $config [ 'TOU_NUM' ] : 50; $this ->pageNUM = ceil ( $this ->touNUM/ $this ->perNUM); $this ->errorURL = $config [ 'ERROR_URL' ] ? $config [ 'ERROR_URL' ] : 'http://HdhCmsTestkonwu测试数据' ; $this ->numPage = $config [ 'NUM_PAGE' ] ? $config [ 'NUM_PAGE' ] : 'page' ; } function getNUM(){ //get num 得到当前页面的值 if (isset( $_GET [ $this ->numPage]) && ! empty empty ( $_GET [ $this ->numPage])){ $str = $_GET [ $this ->numPage]; } else { $str = 'wrong' ; } return $str ; } function getError(){ //return $str; header( 'location: ' . $this ->errorURL); } //$_GET['pageNUM'] 第几页,必须要是数字整数,必须要 >0 ,必须 <=$pageNUM function isNUM(){ //check num $str = self::getNUM(); if ( $str != 'wrong' ){ if (ctype_digit( $str )){ $numPage = $str ; } else { self::getError(); } } else { self::getError(); } return $numPage ; } function getSelect(){ $sql = 'SELECT * FROM ' . $this ->tables. ' ORDER BY announceID DESC' ; return $sql ; } function getSelectResult(){ $sql = self::getSelect(); $result = mysql_query( $sql ); return $result ; } function getStartNUM(){ $nowPage = self::isNUM(); $perNUM = $this ->perNUM; $startNUM = $nowPage -1; $startNUM = $startNUM * $perNUM ; $startNUM = $startNUM +1; return $startNUM ; } function getLastNUM(){ $nowPage = self::isNUM(); $perNUM = $this ->perNUM; $lastNUM = $nowPage * $perNUM ; return $lastNUM ; } function resultNUM( $config ){ self::getInt( $config ); $result = self::getSelectResult(); $startNUM = self::getStartNUM(); $lastNUM = self::getLastNUM(); $mynum = 1; $allResult = '' ; while ( $re =mysql_fetch_array( $result )){ if ( $mynum >= $startNUM && $mynum <= $lastNUM ){ $announceID = $re [ 'announceID' ]; $singleResult = $re [ 'announceContent' ]; $singleResult = mb_substr( $singleResult ,0,50, 'utf-8' ); $lastPage = self::lastPage(); $nextPage = self::nextPage(); $beginPage = self::beginPage(); $endPage = self::endPage(); $getFivePage = self::getFivePage(); $singleResult = ' <p> '.$singleResult.' … <a href= "moreInfoCon'.$announceID.'.html" >详细</a></p> '; $allResult = $allResult . $singleResult ; } //-------------------------------------------------------------- $mynum ++; //---------------------------- if ( $mynum > $lastNUM ){ $resultPage = '<div class = "pagination" > '.$beginPage.' '.$lastPage.' '.$getFivePage.' '.$nextPage.' '.$endPage.' </div>'; $allResult = $allResult . $resultPage ; return $allResult ; } //----------------------------- } $resultPage = '<div class = "pagination" > '.$beginPage.' '.$lastPage.' '.$getFivePage.' '.$nextPage.' '.$endPage.' </div>'; $allResult = $allResult . '<br><br>' . $resultPage ; return $allResult ; } //next page下一页 function nextPage(){ $nowPage = self::isNUM(); $pageNUM = $this ->pageNUM; if ( $nowPage >= $pageNUM ){ $nextPage = '' ; } else { $nextPage = $nowPage +1; $nextPage = '<a href="moreInfo.html?' . $this ->numPage. '=' . $nextPage . '" title="Next Page">下一页 »</a>' ; } return $nextPage ; //得到参数值 } //lastPage 上一页 function lastPage(){ $nowPage = self::isNUM(); if ( $nowPage >=2){ $lastPage = $nowPage -1; $lastPage = '<a href="moreInfo.html?' . $this ->numPage. '=' . $lastPage . '" title="Previous Page">« 上一页</a>' ; } else { $lastPage = '' ; } return $lastPage ; } //第一页,最后一页,当前页左右各两页共五页 function endPage(){ $pageNUM = $this ->pageNUM; $endPage = '<a href="moreInfo.html?' . $this ->numPage. '=' . $pageNUM . '" title="Last Page">最后一页 »</a>' ; return $endPage ; } function beginPage(){ $beginPage = '<a href="moreInfo.html?' . $this ->numPage. '=1" title="First Page">« 第一页</a>' ; return $beginPage ; } function getFivePage(){ $nowPage = self::isNUM(); //当前页面 $pageNUM = $this ->pageNUM; //总页数 if ( $pageNUM <=5){ $NUM = 1; $getNUM = '' ; while ( $pageNUM >= $NUM ){ $nums = '<a href="moreInfo.html?' . $this ->numPage. '=' . $NUM . '" class="number" title="' . $NUM . '">' . $NUM . '</a>' ; $getNUM = $getNUM . $nums ; $NUM ++; } $getFivePage = $getNUM ; return $getFivePage ; } else { //>5 if ( $nowPage == 1){ $getNUM = ' <a href= "moreInfo.html?'.$this->numPage.'=1" class = "number current" title= "1" >1</a> <a href= "moreInfo.html?'.$this->numPage.'=2" class = "number" title= "2" >2</a> <a href= "moreInfo.html?'.$this->numPage.'=3" class = "number" title= "3" >3</a> <a href= "moreInfo.html?'.$this->numPage.'=4" class = "number" title= "4" >4</a> <a href= "moreInfo.html?'.$this->numPage.'=5" class = "number" title= "5" >5</a> '; } elseif ( $nowPage == 2){ $getNUM = ' <a href= "moreInfo.html?'.$this->numPage.'=1" class = "number" title= "1" >1</a> <a href= "moreInfo.html?'.$this->numPage.'=2" class = "number current" title= "2" >2</a> <a href= "moreInfo.html?'.$this->numPage.'=3" class = "number" title= "3" >3</a> <a href= "moreInfo.html?'.$this->numPage.'=4" class = "number" title= "4" >4</a> <a href= "moreInfo.html?'.$this->numPage.'=5" class = "number" title= "5" >5</a> '; } elseif ( $nowPage == ( $pageNUM -1)){ //-2位置 $getNUM = ' <a href= "moreInfo.html?'.$this->numPage.'='.($pageNUM-4).'" class = "number" title= "'.($pageNUM-4).'" > '.($pageNUM-4).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($pageNUM-3).'" class = "number" title= "'.($pageNUM-3).'" > '.($pageNUM-3).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($pageNUM-2).'" class = "number" title= "'.($pageNUM-2).'" > '.($pageNUM-2).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($pageNUM-1).'" class = "number current" title= "'.($pageNUM-1).'" > '.($pageNUM-1).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.$pageNUM.'" class = "number" title= "'.$pageNUM.'" > '.$pageNUM.' </a> '; } elseif ( $nowPage == $pageNUM ){ //-1位置 $getNUM = ' <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-4).'" class = "number" title= "'.($nowPage-4).'" > '.($nowPage-4).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-3).'" class = "number" title= "'.($nowPage-3).'" > '.($nowPage-3).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-2).'" class = "number" title= "'.($nowPage-2).'" > '.($nowPage-2).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-1).'" class = "number" title= "'.($nowPage-1).'" > '.($nowPage-1).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.$nowPage.'" class = "number current" title= "'.$nowPage.'" > '.$nowPage.' </a> '; } elseif (2< $nowPage && $nowPage <( $pageNUM -1)){ //2位置和-2位置之间 $getNUM = ' <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-2).'" class = "number" title= "'.($nowPage-2).'" > '.($nowPage-2).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage-1).'" class = "number" title= "'.($nowPage-1).'" > '.($nowPage-1).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.$nowPage.'" class = "number current" title= "'.$nowPage.'" > '.$nowPage.' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage+1).'" class = "number" title= "'.($nowPage+1).'" > '.($nowPage+1).' </a> <a href= "moreInfo.html?'.$this->numPage.'='.($nowPage+2).'" class = "number" title= "'.($nowPage+2).'" > '.($nowPage+2).' </a> '; } else { self::getError(); } } $getFivePage = $getNUM ; return $getFivePage ; } //---------------------------------- } ?>
查看更多关于简单的php分页类 - php类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29596