網上的一個PHP分頁函數,測試可用
系統
2563 0
這個函數很多地方都有的。但是有點小小的錯誤。現在貼出
<?
//
為了避免重復包含文件而造成錯誤,加了判斷函數是否存在的條件:
if
(
!
function_exists
(pageft)){
//
定義函數pageft(),三個參數的含義為:
//$total:信息總數;
//$displaypg:每頁顯示信息數,這里設置為默認是20;
//$url:分頁導航中的鏈接,除了加入不同的查詢信息“page”外的部分都與這個URL相同。
// 默認值本該設為本頁URL(即$_SERVER["REQUEST_URI"]),但設置默認值的右邊只能為常量,所以該默認值設為空字符串,在函數內部再設置為本頁URL。
function
pageft(
$total
,
$displaypg
=
20
,
$url
=
''
){
//
定義幾個全局變量:
//$page:當前頁碼;
//$firstcount:(數據庫)查詢的起始項;
//$pagenav:頁面導航條代碼,函數內部并沒有將它輸出;
//$_SERVER:讀取本頁URL“$_SERVER["REQUEST_URI"]”所必須。
global
$page
,
$firstcount
,
$pagenav
,
$_SERVER
;
//
為使函數外部可以訪問這里的“$displaypg”,將它也設為全局變量。注意一個變量重新定義為全局變量后,原值被覆蓋,所以這里給它重新賦值。
$GLOBALS
[
"
displaypg
"
]
=
$displaypg
;
if
(
!
$page
)
$page
=
1
;
//
如果$url使用默認,即空值,則賦值為本頁URL:
if
(
!
$url
){
$url
=
$_SERVER
[
"
REQUEST_URI
"
];}
//
URL分析:
$parse_url
=
parse_url
(
$url
);
$url_query
=
$parse_url
[
"
query
"
];
//
單獨取出URL的查詢字串
if
(
$url_query
){
//
因為URL中可能包含了頁碼信息,我們要把它去掉,以便加入新的頁碼信息。
//這里用到了正則表達式,請參考“PHP中的正規表達式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html)
$url_query
=
ereg_replace
(
"
(^|&)page=$page
"
,
""
,
$url_query
);
//
將處理后的URL的查詢字串替換原來的URL的查詢字串:
$url
=
str_replace
(
$parse_url
[
"
query
"
]
,
$url_query
,
$url
);
//
在URL后加page查詢信息,但待賦值:
if
(
$url_query
)
$url
.=
"
&page
"
;
else
$url
.=
"
page
"
;
}
else
{
$url
.=
"
?page
"
;
}
//
頁碼計算:
$lastpg
=
ceil
(
$total
/
$displaypg
);
//
最后頁,也是總頁數
$page
=
min
(
$lastpg
,
$page
);
$prepg
=
$page
-
1
;
//
上一頁
$nextpg
=
(
$page
==
$lastpg
?
0
:
$page
+
1
);
//
下一頁
$firstcount
=
(
$page
-
1
)
*
$displaypg
;
//
開始分頁導航條代碼:
$pagenav
=
"
顯示第<B>
"
.
(
$total
?
(
$firstcount
+
1
)
:
0
)
.
"
</B>-<B>
"
.
min
(
$firstcount
+
$displaypg
,
$total
)
.
"
</B>條記錄,共$total條記錄<BR>
"
;
//
如果只有一頁則跳出函數:
if
(
$lastpg
<=
1
)
return
false
;
$pagenav
.=
"
<ahref='$url=1'>首頁</a>
"
;
if
(
$prepg
)
$pagenav
.=
"
<ahref='$url=$prepg'>前頁</a>
"
;
else
$pagenav
.=
"
前頁
"
;
if
(
$nextpg
)
$pagenav
.=
"
<ahref='$url=$nextpg'>后頁</a>
"
;
else
$pagenav
.=
"
后頁
"
;
$pagenav
.=
"
<ahref='$url=$lastpg'>尾頁</a>
"
;
//
下拉跳轉列表,循環列出所有頁碼:
$pagenav
.=
"
到第<selectname='topage'size='1'onchange='window.location="$url="+this.value'>
"
;
for
(
$i
=
1
;
$i
<=
$lastpg
;
$i
++
){
if
(
$i
==
$page
)
$pagenav
.=
"
<optionvalue='$i'selected>$i</option>
"
;
else
$pagenav
.=
"
<optionvalue='$i'>$i</option>
"
;
}
$pagenav
.=
"
</select>頁,共$lastpg頁
"
;
}
}
?>
<?
php
require_once
(
'
../Connections/lr.php
'
);
?>
<?
php
echo
(
"
<tablewidth='618'border='0'>
<trbgcolor='#999999'>
<tdwidth='32'> </td>
<tdwidth='110'>帳號</td>
<tdwidth='155'>密碼</td>
<tdwidth='193'></td>
<Td></Td>
</tr></table>
"
);
//
$page
=
intval
(
$_GET
[page]);//網上的都是差這個
include
(
"
pageft.php
"
);
//
包含“pageft.php”文件
//取得總信息數
mysql_select_db
(
$database_lr
,
$lr
);
$query
=
mysql_query
(
"
SELECT*FROMadminorderbyid
"
);
$total
=
mysql_num_rows
(
$query
);
//
調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所以省略掉)。
pageft(
$total
,
5
,
""
);
//
現在產生的全局變量就派上用場了:
$sql
=
"
select*fromadminorderbyidlimit$firstcount,$displaypg
"
;
$result2
=
mysql_query
(
$sql
);
while
(
$row
=
mysql_fetch_array
(
$result2
))
{
//
列表內容
echo
(
"
<tablewidth='618'border='0'>
"
);
echo
(
"
<trbgcolor='#CCCCCC'>
"
);
echo
(
"
<tdwidth='32'> </td>
"
);
echo
"
<tdwidth='110'>
"
,
$row
[
'
id
'
]
,
"
</td>
"
;
//
因為含有變量,括號就不用了
echo
"
<tdwidth='155'>
"
,
$row
[
'
user
'
]
,
"
</td>
"
;
echo
"
<tdwidth='193'>
"
,
$row
[
'
password
'
]
,
"
</td>
"
;
echo
"
<Td><ahref='admin_modify_user.php?id=
"
,
$row
[
'
id
'
]
,
"
'>修改</a> <ahref='admin_del.php?id=
"
,
$row
[
'
id
'
]
,
"
'>刪</a></Td>
"
;
echo
(
"
</tr></table>
"
);
}
//
輸出分頁導航條代碼:
echo
$pagenav
;
?>
http://www.corange.cn/archives/2008/04/1016.html
網上的一個PHP分頁函數,測試可用
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元