自用php好用,格式齐全的分页程序源代码

分页程序,用的时候很简单,用一下的代码,然后在要显示分页的地方用<?=$pagerstring?>就可以了.三种页码显示样式.

循环输出$result就可以了.使用时:
<?

  1. /* 分页*/  
  2. $page = isset($_REQUEST['page'])?$_REQUEST['page']:1;
  3. $numperpage=10;
  4. $start = ($page-1)*$numperpage
  5. $where = ...;
  6. $query = "SELECT id FROM bh_articles WHERE $where ";
  7. $query_result = mysql_query($query);
  8. $total_records = @mysql_num_rows($query_result);
  9. $pagerstring = pager($total_records$numperpage'?'$page);
  10. $limit=$start.",".$numperpage;
  11. $query = "SELECT id, title, summary, timestamp FROM bh_articles WHERE $where ORDER BY timestamp DESC limit $limit";
  12. $result = $db->query($query);

?>

PHP代码
  1. //php函数pager()   
  2.   
  3. function pager($numrecord$pagesize$pagename='?'$page){   
  4.     //querystring   
  5.     $querystring = $pagename;   
  6.     if (isset($_GET)) {   
  7.         foreach ($_GET as $key=>$val) {   
  8.             $val = urlencode($val);   
  9.             if ($key != 'page') {   
  10.                 $querystring .= $key."=$val&";   
  11.             }   
  12.         }   
  13.     }   
  14.   
  15.     $numpage = ceil($numrecord/$pagesize);   
  16.     $pagerstring = "总计 <b>$numrecord</b> 条 分 <b>$numpage</b> 页显示 当前第<b>$page</b>页";   
  17.        
  18.     if ($page>1)   
  19.         $pagerstring .= " <a href={$querystring}page=1 class=pager>首页</a> ";   
  20.     else  
  21.         $pagerstring .= " 首页 ";   
  22.        
  23.     if ($page>1)   
  24.         $pagerstring .= " <a href={$querystring}page=".($page-1)." class=pager>上一页</a> ";   
  25.     else  
  26.         $pagerstring .= " 上一页 ";   
  27.        
  28.     if ($page<$numpage)     
  29.         $pagerstring .= " <a href={$querystring}page=".($page+1)." class=pager>下一页</a> ";   
  30.     else  
  31.         $pagerstring .= " 下一页 ";   
  32.            
  33.     if ($page<$numpage)     
  34.         $pagerstring .= " <a href={$querystring}page=$numpage class=pager>末页</a> ";   
  35.     else  
  36.         $pagerstring .= " 末页 ";   
  37.            
  38.     $pagerstring .= "跳转至第<select name\"=page\" onchange=\"window.location.href='{$querystring}page='+this.value\">";   
  39.     for ($i=1; $i<=$numpage$i++){   
  40.         $pagerstring .= "<option value=$i ";   
  41.         if ($page == $i)   
  42.             $pagerstring .= "selected";   
  43.         $pagerstring .= ">$i</option>\n";   
  44.     }   
  45.     $pagerstring .= "</select>页";   
  46.        
  47.     return $pagerstring;   

输出结果为:
总计 7 条 分 1 页显示 当前第1页 | [首页] [上一页] [下一页] [末页] 跳转至第

PHP代码
  1. function pager2($numrecord$pagesize$pagename='?'$page){   
  2.     //querystring   
  3.     $querystring = $pagename;   
  4.     if (isset($_GET)) {   
  5.         foreach ($_GET as $key=>$val) {   
  6.             $val = urlencode($val);   
  7.             if ($key != 'page') {   
  8.                 $querystring .= $key."=$val&";   
  9.             }   
  10.         }   
  11.     }   
  12.   
  13.     $numpage = ceil($numrecord/$pagesize);   
  14.        
  15.     $pagerstring = '';   
  16.     if ($page>1)   
  17.         $pagerstring .= " <span class=\"pager2\" style=\"background-color:#FF6500\" onmouseover=\"this.style.background='#F7AE08'\" onmouseout=\"this.style.background='#FF6500'\"><a href=\"{$querystring}page=1\"><span class=\"f8black2\"><<</span>第一页</a></span> ";   
  18.        
  19.     if ($page>1)   
  20.         $pagerstring .= " <span class=\"pager2\" style=\"background-color:#FF6500\" onmouseover=\"this.style.background='#F7AE08'\" onmouseout=\"this.style.background='#FF6500'\"><a href=\"{$querystring}page=".($page-1)."\"><span class=\"f8black2\"><<</span>上一页</a></span> ";   
  21.     if ($page<4){   
  22.         $first = 1;   
  23.     }else{   
  24.         $first = $page-3;   
  25.     }   
  26.     if ($first+4>$numpage)   
  27.         $last = $numpage;   
  28.     else  
  29.         $last = $first+4;   
  30.            
  31.     for ($i=$first$i<=$last$i++){   
  32.         if ($i==$page){   
  33.             $color='#F7AE08';   
  34.             $style='color:#000000';   
  35.         }else{   
  36.             $color='#FF6500';   
  37.             $style='';   
  38.         }   
  39.         $pagerstring .= " <span class=\"pager2\" style=\"background-color:$color\" onmouseover=\"this.style.background='#F7AE08'\" onmouseout=\"this.style.background='$color'\"><a href=\"{$querystring}page=$i\" style=\"$style\">$i</a></span> ";   
  40.     }   
  41.     if ($page<$numpage)     
  42.         $pagerstring .= " <span class=\"pager2\" style=\"background-color:$color\" onmouseover=\"this.style.background='#F7AE08'\" onmouseout=\"this.style.background='#FF6500'\"><a href=\"{$querystring}page=".($page+1)."\">下一页<span class=\"f8black2\">>></span></a></span> ";   
  43.            
  44.     if ($page<$numpage)     
  45.         $pagerstring .= " <span class=\"pager2\" style=\"background-color:$color\" onmouseover=\"this.style.background='#F7AE08'\" onmouseout=\"this.style.background='#FF6500'\"><a href=\"{$querystring}page=$numpage\">末页<span class=\"f8black2\">>></span></a></span> ";   
  46.     return $pagerstring;   
  47. }  

输出结果为:  第一页 上一页 下一页 末页

PHP代码
  1. function pager3($numrecord$pagesize$pagename='?'$page){   
  2.     //querystring   
  3.     $querystring = $pagename;   
  4.     if (isset($_GET)) {   
  5.         foreach ($_GET as $key=>$val) {   
  6.             $val = urlencode($val);   
  7.             if ($key != 'page') {   
  8.                 $querystring .= $key."=$val&";   
  9.             }   
  10.         }   
  11.     }   
  12.   
  13.     $numpage = ceil($numrecord/$pagesize);   
  14.        
  15.     $pagerstring = '';   
  16.        
  17.     if ($page>1)   
  18.         $pagerstring .= " <span class=\"pager3\"><a href=\"{$querystring}page=".($page-1)."\">前一页</a></span> ";   
  19.        
  20.     $first = max((floor($page/5)-1)*5+1, 1);   
  21.     $last = min($first+5, $numpage);   
  22.            
  23.     for ($i=$first$i<=$last$i++){   
  24.         if ($i==$page){   
  25.             $pagerstring .= " <b>$i</b></a> ";   
  26.         }else{   
  27.             $pagerstring .= " <span class=\"page3\"><a href=\"{$querystring}page=$i\">$i</a></span> ";   
  28.         }   
  29.     }   
  30.        
  31.     if ($page<$numpage)     
  32.         $pagerstring .= " <span class=\"pager3\"><a href=\"{$querystring}page=".($page+1)."\">后一页</a></span> ";   
  33.            
  34.     return $pagerstring;   
  35. }  

输出结果为:  前一页 后一页.

5 条评论

viatop

兄弟,仔细研究一下看看,只不过调用一下函数,加上一些基本操作就可以了。

回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

😉😐😡😈🙂😯🙁🙄😛😳😮:mrgreen:😆💡😀👿😥😎😕