程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP通用分頁實現

PHP通用分頁實現

編輯:PHP綜合

自己寫的一個通用分頁,帶下拉選擇,可設置顯示的分頁鏈接數,不多說,看代碼和注釋:

1<?php
2//Written by Shaoyun 20:17 2008年5月31日
3//Email:shaoyun at yeah.net
4//Blog:http://shaoyun.cnblogs.com
5//分頁函數:splitpage(記錄總數,每頁顯示記錄數,顯示幾條分頁鏈接)
6function splitpage($rscount,$pagesize,$shownum){
7//計算總頁數
8if ($rscount % $pagesize){
9  $pagenum=(int)($rscount/$pagesize)+1;
10}else{
11  $pagenum=(int)($rscount/$pagesize);
12}
13//過濾獲取正確的頁碼
14if(!isset($_GET["page"])){
15  $curpage=1;
16}elseif(is_numeric($_GET["page"])){
17  if($_GET["page"]>$pagenum)
18    $curpage=$pagenum;
19  else
20    $curpage=(int)$_GET["page"];
21  if($curpage<1)
22    $curpage=1;
23}else{
24  $curpage=1;
25}
26//設置前一頁、後一頁、上一頁、下一頁
27$first_page=1;
28$last_page=$pagenum;
29$up_page=$curpage-1;
30$down_page=$curpage+1;
31//獲取當前文件名
32$addr_url=$_SERVER["SCRIPT_NAME"];
33$addr_url=strrev($addr_url);
34$addr_url=substr($addr_url,0,strpos($addr_url,"/"));
35$addr_url=strrev($addr_url);
36$addr_url=$addr_url."?page=";
37
38$page_html='共'.$rscount.'條記錄&nbsp;'.$pagesize.'條/頁&nbsp;第'.$curpage.'/'.$pagenum.'頁&nbsp;';
39
40$page_html.="<a href='".$addr_url.$first_page."'>首頁</a>&nbsp;";
41if($curpage>1){
42  $page_html.="<a href='".$addr_url.$up_page."'>上一頁</a>&nbsp;";
43}else{
44  $page_html.="上一頁&nbsp;";
45}
46//計算分頁邊界
47if($shownum % 2){
48  $show_front_num=(int)($shownum/2);
49  $show_back_num=(int)($shownum/2);
50}else{
51  $show_front_num=(int)($shownum/2)-1;
52  $show_back_num=(int)($shownum/2);
53}
54if($curpage<$show_front_num+1){
55  $fbegin=1;
56  $fend=$shownum;
57}elseif($curpage+$show_back_num>$pagenum){
58  $fend=$pagenum;
59  $fbegin=$pagenum-$shownum+1;
60}else{
61  $fbegin=$curpage-$show_front_num;
62  $fend=$curpage+$show_back_num;
63}
64//分頁鏈接
65for($idx=$fbegin;$idx<$fend+1;++$idx){
66  if($curpage==$idx){
67    $page_html.="<b>".$idx."</b>&nbsp;";
68  }else{
69    $page_html.="<a href='".$addr_url.$idx."'>".$idx."</a>&nbsp;";
70  }
71}
72
73if($curpage<$pagenum){
74  $page_html.="<a href='".$addr_url.$down_page."'>下一頁</a>&nbsp;";
75}else{
76  $page_html.="下一頁&nbsp;";
77}
78$page_html.="<a href='".$addr_url.$last_page."'>尾頁</a>&nbsp;";
79//下拉導航代碼
80$page_html.="跳轉到&nbsp;";
81$page_html.="<select onChange=window.location.href=this.options[this.selectedIndex].value>";
82for($idx=1;$idx<$pagenum+1;++$idx){
83  if($curpage==$idx){
84    $page_html.="<option value='".$addr_url.$idx."' selected>第".$idx."頁</option>";
85  }else{
86    $page_html.="<option value='".$addr_url.$idx."'>第".$idx."頁</option>";
87  }
88}
89$page_html.="</select>";
90
91echo $page_html;
92}
93?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved