首页 > 语言 > PHP > 正文

简单的php分页类

2024-09-04 11:43:58
字体:
来源:转载
供稿:网友
  1. <?php  
  2.  
  3. //-------------------------------------------------------------------------  
  4. //使用方法  
  5.   //测试时还需要一张表  至少出现字段 announceID,announceContent  
  6.   //include db.php  
  7.  $db_host='localhost';  
  8.  $db_user='username';  
  9.  $db_password='password';  
  10.  $db_name='konwu';  
  11.  $db_prefix = 'konwu_';  
  12.   Global $db_prefix;  
  13.   $conn=@mysql_connect($db_host,$db_user,$db_password);  
  14.   // utf-8 是默认设置 即使没有下面的一行也会默认 UTF-8  
  15.   // 但是MYSQL数据库的默认是LATIN 拉丁字符  
  16.   // 最好设置成 GBK UTF-8包含GBK 包含 LATIN  
  17.   //网页用UTF-8 显示 GBK 没关系 但如果 MYSQL写入时用UTF8有乱码风险,因为MYSQL安装时默认LATIN ,最好 SET GBK  
  18.   mysql_query("SET NAMES 'UTF8'");  
  19.   mysql_select_db($db_name,$connor die ('none DB');  
  20.   //set page  
  21.       //@param set  
  22.    $errorURL = 'http://localhost:8080/htmls/error/index.html';  
  23.    $result   = mysql_query("SELECT * FROM konwu_messageannounce");  
  24.    $touNUM   = mysql_num_rows($result);  
  25.    $config   = array('DB_PREFIX'=>'konwu_','DB'=>'messageannounce','PER_NUM'=>10,'TOU_NUM'=>$touNUM,'ERROR_URL'=>$errorURL,'NUM_PAGE'=>'p');  
  26.    // use class  
  27.    $pages    = new Pages;  
  28.    $getPage  = $pages->resultNUM($config);//  
  29. //------------------------------------   
  30.    
  31.   class Pages{  
  32.     public static $perNUM;//每一页多少条  
  33.     public static $touNUM;//总共多少条  
  34.     public static $pageNUM;//总页数  
  35.     public static $tables;//表名  
  36.     public static $errorURL;// index URL  
  37.     public static $numPage;//页面参数的标识 ,   
  38.     function getInt($config=array()){     
  39.       $this->tables    = $config['DB_PREFIX'].$config['DB'] ? $config['DB_PREFIX'].$config['DB'] : 'konwu_messageannounce';  
  40.       $this->perNUM    = $config['PER_NUM'] ? $config['PER_NUM'] : 10;  
  41.       $this->touNUM    = $config['TOU_NUM'] ? $config['TOU_NUM'] : 50;  
  42.       $this->pageNUM   = ceil($this->touNUM/$this->perNUM);  
  43.       $this->errorURL  = $config['ERROR_URL'] ? $config['ERROR_URL'] : 'http://www.konwu.com';  
  44.       $this->numPage   = $config['NUM_PAGE'] ? $config['NUM_PAGE'] : 'page';  
  45.     }  
  46.      
  47.     function getNUM(){//get num 得到当前页面的值    
  48.       if(isset($_GET[$this->numPage]) && !emptyempty($_GET[$this->numPage])){  
  49.         $str = $_GET[$this->numPage];  
  50.       }else{  
  51.         $str = 'wrong';  
  52.       }  
  53.       return $str;  
  54.     }  
  55.      
  56.     function getError(){  
  57.       //return $str;     
  58.       header('location: '.$this->errorURL);  
  59.     }  
  60.      
  61.     //$_GET['pageNUM'] 第几页,必须要是数字整数,必须要 >0 ,必须 <=$pageNUM  
  62.     function isNUM(){//check num   
  63.      $str = self::getNUM();      
  64.      if($str != 'wrong'){  
  65.        if(ctype_digit($str)){  
  66.          $numPage = $str;  
  67.        }else{  
  68.          self::getError();  
  69.        }  
  70.      }else{  
  71.        self::getError();  
  72.      }  
  73.      return $numPage;  
  74.     }    
  75.     function getSelect(){    
  76.       $sql = 'SELECT * FROM '.$this->tables.' ORDER BY announceID DESC';  
  77.       return $sql;  
  78.     }  
  79.      
  80.     function getSelectResult(){    
  81.      $sql = self::getSelect();  
  82.      $result = mysql_query($sql);  
  83.      return $result;  
  84.     }  
  85.      
  86.     function getStartNUM(){   
  87.       $nowPage = self::isNUM();  
  88.       $perNUM = $this->perNUM;  
  89.       $startNUM = $nowPage-1;  
  90.       $startNUM = $startNUM*$perNUM;  
  91.       $startNUM = $startNUM+1;  
  92.       return $startNUM;  
  93.     }  
  94.      
  95.     function getLastNUM(){   
  96.       $nowPage = self::isNUM();  
  97.       $perNUM = $this->perNUM;  
  98.       $lastNUM = $nowPage*$perNUM;  
  99.       return $lastNUM;  
  100.     }  
  101.      
  102.     function resultNUM($config){     
  103.       self::getInt($config);  
  104.       $result = self::getSelectResult();       
  105.       $startNUM = self::getStartNUM();  
  106.       $lastNUM = self::getLastNUM();  
  107.       $mynum = 1;  
  108.       $allResult = '';  
  109.       while($re=mysql_fetch_array($result)){    
  110.         if($mynum>=$startNUM && $mynum<=$lastNUM){  
  111.           $announceID   = $re['announceID'];  
  112.           $singleResult = $re['announceContent'];  
  113.           $singleResult = mb_substr($singleResult,0,50,'utf-8');  
  114.           $lastPage     = self::lastPage();  
  115.           $nextPage     = self::nextPage();  
  116.           $beginPage    = self::beginPage();  
  117.           $endPage      = self::endPage();  
  118.           $getFivePage  = self::getFivePage();  
  119.           $singleResult = '  
  120.                             <p>'.$singleResult.'&hellip;&nbsp;&nbsp;<a href="moreInfoCon'.$announceID.'.html">详细</a></p>  
  121.                           ';  
  122.           $allResult = $allResult.$singleResult;                           
  123.         }  
  124.    //--------------------------------------------------------------      
  125.         $mynum++;  
  126.         //----------------------------  
  127.         if($mynum>$lastNUM){  
  128.           $resultPage = '<div class="pagination">  
  129.       '.$beginPage.' 
  130.       '.$lastPage.' 
  131.       '.$getFivePage.' 
  132.       '.$nextPage.' 
  133.       '.$endPage.' 
  134.       </div>';  
  135.           $allResult = $allResult.$resultPage;  
  136.           return $allResult;  
  137.       }  
  138.       //-----------------------------   
  139.       }  
  140.       $resultPage = '<div class="pagination">  
  141.       '.$beginPage.' 
  142.       '.$lastPage.' 
  143.       '.$getFivePage.' 
  144.       '.$nextPage.' 
  145.       '.$endPage.' 
  146.       </div>';  
  147.       $allResult  = $allResult.'<br><br>'.$resultPage;  
  148.       return $allResult;  
  149.     }  
  150.      
  151.     //next page下一页  
  152.     function nextPage(){  
  153.      $nowPage = self::isNUM();  
  154.      $pageNUM = $this->pageNUM;   
  155.      if($nowPage>=$pageNUM){  
  156.        $nextPage = '';  
  157.      }else{  
  158.        $nextPage = $nowPage+1;  
  159.        $nextPage = '<a href="moreInfo.html?'.$this->numPage.'='.$nextPage.'" title="Next Page">下一页 &raquo;</a>';  
  160.      }     
  161.      return $nextPage;//得到参数值  
  162.     }  
  163.      
  164.     //lastPage 上一页  
  165.     function lastPage(){  
  166.       $nowPage = self::isNUM();  
  167.       if($nowPage>=2){  
  168.         $lastPage = $nowPage-1;  
  169.         $lastPage = '<a href="moreInfo.html?'.$this->numPage.'='.$lastPage.'" title="Previous Page">&laquo; 上一页</a>';  
  170.       }else{  
  171.         $lastPage = '';  
  172.       }      
  173.       return $lastPage;  
  174.     }  
  175.      
  176.     //第一页,最后一页,当前页左右各两页共五页  
  177.     function endPage(){  
  178.       $pageNUM = $this->pageNUM;  
  179.       $endPage = '<a href="moreInfo.html?'.$this->numPage.'='.$pageNUM.'" title="Last Page">最后一页 &raquo;</a>';  
  180.       return $endPage;  
  181.     }  
  182.      
  183.     function beginPage(){  
  184.       $beginPage = '<a href="moreInfo.html?'.$this->numPage.'=1" title="First Page">&laquo; 第一页</a>';  
  185.       return $beginPage;  
  186.     }  
  187.      
  188.     function getFivePage(){  
  189.       $nowPage = self::isNUM();//当前页面  
  190.       $pageNUM = $this->pageNUM;//总页数  
  191.       if($pageNUM<=5){  
  192.         $NUM = 1;  
  193.         $getNUM = '';  
  194.         while($pageNUM>=$NUM){  
  195.           $nums = '<a href="moreInfo.html?'.$this->numPage.'='.$NUM.'" class="number" title="'.$NUM.'">'.$NUM.'</a>';  
  196.           $getNUM = $getNUM.$nums;  
  197.           $NUM++;  
  198.         }  
  199.         $getFivePage = $getNUM;  
  200.         return $getFivePage;           
  201.       }else{//>5  
  202.         if($nowPage == 1){  
  203.           $getNUM = '  
  204.                      <a href="moreInfo.html?'.$this->numPage.'=1" class="number current" title="1">1</a>  
  205.                      <a href="moreInfo.html?'.$this->numPage.'=2" class="number" title="2">2</a>  
  206.                      <a href="moreInfo.html?'.$this->numPage.'=3" class="number" title="3">3</a>  
  207.                      <a href="moreInfo.html?'.$this->numPage.'=4" class="number" title="4">4</a>  
  208.                      <a href="moreInfo.html?'.$this->numPage.'=5" class="number" title="5">5</a>  
  209.                     ';  
  210.         }elseif($nowPage == 2){  
  211.           $getNUM = '  
  212.                      <a href="moreInfo.html?'.$this->numPage.'=1" class="number" title="1">1</a>  
  213.                      <a href="moreInfo.html?'.$this->numPage.'=2" class="number current" title="2">2</a>  
  214.                      <a href="moreInfo.html?'.$this->numPage.'=3" class="number" title="3">3</a>  
  215.                      <a href="moreInfo.html?'.$this->numPage.'=4" class="number" title="4">4</a>  
  216.                      <a href="moreInfo.html?'.$this->numPage.'=5" class="number" title="5">5</a>  
  217.                     ';  
  218.         }elseif($nowPage == ($pageNUM-1)){//-2位置  
  219.           $getNUM = '  
  220.                      <a href="moreInfo.html?'.$this->numPage.'='.($pageNUM-4).'" class="number" title="'.($pageNUM-4).'">'.($pageNUM-4).'</a>  
  221.                      <a href="moreInfo.html?'.$this->numPage.'='.($pageNUM-3).'" class="number" title="'.($pageNUM-3).'">'.($pageNUM-3).'</a>  
  222.                      <a href="moreInfo.html?'.$this->numPage.'='.($pageNUM-2).'" class="number" title="'.($pageNUM-2).'">'.($pageNUM-2).'</a>  
  223.                      <a href="moreInfo.html?'.$this->numPage.'='.($pageNUM-1).'" class="number current" title="'.($pageNUM-1).'">'.($pageNUM-1).'</a>  
  224.                      <a href="moreInfo.html?'.$this->numPage.'='.$pageNUM.'" class="number" title="'.$pageNUM.'">'.$pageNUM.'</a>  
  225.                     ';  
  226.         }elseif($nowPage == $pageNUM){//-1位置  
  227.           $getNUM = '  
  228.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-4).'" class="number" title="'.($nowPage-4).'">'.($nowPage-4).'</a>  
  229.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-3).'" class="number" title="'.($nowPage-3).'">'.($nowPage-3).'</a>  
  230.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-2).'" class="number" title="'.($nowPage-2).'">'.($nowPage-2).'</a>  
  231.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-1).'" class="number" title="'.($nowPage-1).'">'.($nowPage-1).'</a>  
  232.                      <a href="moreInfo.html?'.$this->numPage.'='.$nowPage.'" class="number current" title="'.$nowPage.'">'.$nowPage.'</a>  
  233.                     ';  
  234.         }elseif(2<$nowPage && $nowPage<($pageNUM-1)){//2位置和-2位置之间  
  235.           $getNUM = '  
  236.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-2).'" class="number" title="'.($nowPage-2).'">'.($nowPage-2).'</a>  
  237.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage-1).'" class="number" title="'.($nowPage-1).'">'.($nowPage-1).'</a>  
  238.                      <a href="moreInfo.html?'.$this->numPage.'='.$nowPage.'" class="number current" title="'.$nowPage.'">'.$nowPage.'</a>  
  239.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage+1).'" class="number" title="'.($nowPage+1).'">'.($nowPage+1).'</a>  
  240.                      <a href="moreInfo.html?'.$this->numPage.'='.($nowPage+2).'" class="number" title="'.($nowPage+2).'">'.($nowPage+2).'</a>  
  241.                     ';  
  242.         }else{  
  243.           self::getError();  
  244.         }  
  245.          
  246.       }  
  247.       $getFivePage = $getNUM;  
  248.       return $getFivePage;  
  249.     }  
  250.      
  251. //----------------------------------     
  252.   }  
  253. ?> 

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表