本文目錄一覽:
- 1、求PHP各種分頁方法,各位大仙有的別藏了~~
- 2、php分頁功能怎麼實現
- 3、又一個php 分頁類實現代碼
- 4、ThinkPHP使用心得分享-分頁類Page的用法
- 5、這個簡單的PHP分頁類,該如何調用?感謝。~
求PHP各種分頁方法,各位大仙有的別藏了~~
PHP分頁方法:
第一步創建一個類 subPages.php?php
class SubPages{
private $each_disNums;//每頁顯示的條目數
private $nums;//總條目數
private $current_page;//當前被選中的頁
private $sub_pages;//每次顯示的頁數
private $pageNums;//總頁數
private $page_array = array();//用來構造分頁的數組
private $subPage_link;//每個分頁的鏈接
private $subPage_type;//顯示分頁的類型
//__construct是SubPages的構造函數,用來在創建類的時候自動運行. //@$each_disNums 每頁顯示的條目數 // @nums 總條目數 // @current_num 當前被選中的頁 //@sub_pages 每次顯示的頁數 // @subPage_link 每個分頁的鏈接 //@subPage_type 顯示分頁的類型 //當@subPage_type=1的時候為普通分頁模式 example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁] //當@subPage_type=2的時候為經典分頁樣式 example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
//intval通過使用特定的進位轉換(默認是十進位),返回變數 var 的 integer 數值
$this-each_disNums=intval($each_disNums);
$this-nums=intval($nums);
if(!$current_page){
$this-current_page=1;
}else{
$this-current_page=intval($current_page);
}
$this-sub_pages=intval($sub_pages);
$this-pageNums=ceil($nums/$each_disNums);
$this-subPage_link=$subPage_link;
$this-show_SubPages($subPage_type);
//echo $this-pageNums.”–“.$this-sub_pages;
}
//__destruct析構函數,當類不在使用的時候調用,該函數用來釋放資源
function __destruct(){
unset($each_disNums);
unset($nums);
unset($current_page);
unset($sub_pages);
unset($pageNums);
unset($page_array);
unset($subPage_link);
unset($subPage_type);
}
//show_SubPages函數用在構造函數裡面。而且用來判斷顯示什麼樣子的分頁
function show_SubPages($subPage_type){
if($subPage_type == 1){
$this-subPageCss1();
}elseif ($subPage_type == 2){
$this-subPageCss2();
}
}
//用來給建立分頁的數組初始化的函數。
function initArray(){
for($i=0;$i$this-sub_pages;$i++){
$this-page_array[$i]=$i;
}
return $this-page_array;
}
//construct_num_Page該函數使用來構造顯示的條目
// 即使:[1][2][3][4][5][6][7][8][9][10]
function construct_num_Page(){
if($this-pageNums $this-sub_pages){
$current_array=array();
for($i=0;$i$this-pageNums;$i++){
$current_array[$i]=$i+1;
}
}else{
$current_array=$this-initArray();
if($this-current_page = 3){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$i+1;
}
}elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums – $this-sub_pages +1 ){
for($i=0;$icount($current_array);$i++){
$current_array[$i]=($this-pageNums)-($this-sub_pages)+1+$i;
}
}else{
for($i=0;$icount($current_array);$i++){
$current_array[$i]=$this-current_page-2+$i;
}
}
}
return $current_array;
}
//構造普通模式的分頁
//共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
function subPageCss1(){
$subPageCss1Str=””;
$subPageCss1Str.=”共”.$this-nums.”條記錄,”;
$subPageCss1Str.=”每頁顯示”.$this-each_disNums.”條,”;
$subPageCss1Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss1Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss1Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss1Str.=”[首頁] “;
$subPageCss1Str.=”[上一頁] “;
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss1Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss1Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss1Str.=”[下一頁] “;
$subPageCss1Str.=”[尾頁] “;
}
echo $subPageCss1Str;
}
//構造經典模式的分頁
//當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
function subPageCss2(){
$subPageCss2Str=””;
$subPageCss2Str.=”當前第”.$this-current_page.”/”.$this-pageNums.”頁 “;
if($this-current_page 1){
$firstPageUrl=$this-subPage_link.”1″;
$prewPageUrl=$this-subPage_link.($this-current_page-1);
$subPageCss2Str.=”[a href=’$firstPageUrl’首頁/a] “;
$subPageCss2Str.=”[a href=’$prewPageUrl’上一頁/a] “;
}else {
$subPageCss2Str.=”[首頁] “;
$subPageCss2Str.=”[上一頁] “;
}
$a=$this-construct_num_Page();
for($i=0;$icount($a);$i++){
$s=$a[$i];
if($s == $this-current_page ){
$subPageCss2Str.=”[span style=’color:red;font-weight:bold;'”.$s.”/span]”;
}else{
$url=$this-subPage_link.$s;
$subPageCss2Str.=”[a href=’$url'”.$s.”/a]”;
}
}
if($this-current_page $this-pageNums){
$lastPageUrl=$this-subPage_link.$this-pageNums;
$nextPageUrl=$this-subPage_link.($this-current_page+1);
$subPageCss2Str.=” [a href=’$nextPageUrl’下一頁/a] “;
$subPageCss2Str.=”[a href=’$lastPageUrl’尾頁/a] “;
}else {
$subPageCss2Str.=”[下一頁] “;
$subPageCss2Str.=”[尾頁] “;
}
echo $subPageCss2Str;
}
}
?要做分頁的頁面?php//每頁顯示的條數
$page_size=2;
//得到當前是第幾頁
$pageCurrent=$_GET[“p”];
$offet =($pageCurrent-1)*$page_size;
//建立資料庫連接
$conn = mysql_connect(“地址”,”用戶名”,”密碼”) or die(“”.mysql_error());
//設置字符集
mysql_query(“set names gbk”);
//設置資料庫
mysql_select_db(“資料庫名”,$conn) or die(“”.mysql_error());
if($conn) { include (“query.html”);
//查詢會員信息//注:這裡的sql查詢了兩遍.第一遍是確定查詢出來的總數據條數
$query_sql = “SELECT * FROM user_info_t order by id desc”;//第二遍是根據需要即$page_size來確定每次查出的條數
$query_sql_sec= “SELECT * FROM user_info_t order by id desc limit $offet,$page_size”;
//執行查詢語句 返回一個結果集
$query_res = mysql_query($query_sql,$conn);
$query_res_sec = mysql_query($query_sql_sec,$conn);
//查詢列數
//$query_cols = mysql_num_fields($query_res);
//查詢行數
$query_num =mysql_num_rows($query_res);
//返回根據從結果集取得的行生成的數組,如果沒有更多行
echo “table border=’0′ cellpadding=’1′ cellspacing=’2′ width=’100%’ bgcolor=’#FFFFFF'”;
while($query_row = mysql_fetch_array($query_res_sec)) {
echo “tr”;
for ($i=0;$i$query_cols;$i++) {
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”.$query_row[$i].”/td\n”;
}
echo “td bordercolor=’#A2BEE1′ bgcolor=’#A2BEE1′ width=’8%'”;
//echo “input type=’button’ class=’button’ id=’modify_record’ name=’modify_record’ value=’修改’ /”;
echo”button onClick=\”submit(location.href=’../modify/modify.php?rec_id=$query_row[0]’);\”class=\”button\”;修改/button”;
//echo “ahref=’../delete/delete.php?rec_id=$query_row[0]’onClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return true;else returnfalse;\”img src=\”../image/delete.gif\” align=\”absmiddle\”/刪除/a”;
echo “buttononClick=\”if(confirm(‘確實要刪除此條記錄嗎?’)) return submit(location.href=’../delete/delete.php?rec_id=$query_row[0]’);else return false;\”class=\”button\”;刪除/button”;
echo “/td”;
echo “/tr”;
}
//echo “/form”;
echo “/table”;
require_once(“../common/subPages.php”);//總條目數為資料庫中查詢出的數據條數
$nums=$query_num;
//每次顯示的頁數
$sub_pages=10; //if(!$pageCurrent) $pageCurrent=1;
//調用類SubPages 傳的參數為:每頁顯示條數/當前第幾頁/每次顯示的頁數/分頁模式
$subPage=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,”query.php?p=”,1);
}else{
die(‘資料庫連接異常: ‘.mysql_error());
}
//斷開資料庫連接
if ($conn)
{
mysql_close($conn);
}
?
php分頁功能怎麼實現
php本身是沒有分頁概念的,分頁是URL傳參,然後通過mysql查詢語句到資料庫獲取數據,然後實現的分頁,url上的參數,通過PHP的$_GET都是可以獲取到的。
現在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調用就好了,如果想看實現過程,可以去下載一個TP框架,然後打開裡面的分頁類查看裡面的源代碼。
又一個php 分頁類實現代碼
複製代碼
代碼如下:
?php
function
genpage($sql,$page_size=10)
{
global
$pages,$sums,$eachpage,$page;
//總頁數,總記錄,每頁數,當前頁
$page
=
$_GET[“page”];
if($page
==0)$page
=1;
$eachpage
=
$page_size;
$pagesql
=
strstr($sql,”
from
“);
$pagesql
=
“select
count(*)
as
ids
“.$pagesql;
$conn
=
mysql_query($pagesql)
or
die(mysql_error());
if($rs
=
mysql_fetch_array($conn))$sums
=
$rs[0];
$pages=ceil($sums/$eachpage);
if($pages==0)$pages=1;
$startpos
=
($page-1)*$eachpage;
$sql
.=”
limit
$startpos,$eachpage
“;
}
//顯示分頁
function
showpage()
{
global
$pages,$sums,$eachpage,$page;
//總頁數,總記錄,每頁數,當前頁,其它參數
$link=$_SERVER[‘PHP_SELF’];
echo
“記錄”.$sums.”:”.$eachpage.” ”;
echo
“頁數”.$page.”/”.$pages.” ”;
$p_head=$page-5;
if($p_head=0)$p_head=1;
//頁碼循環開始數
前5個
$p_end=$page+5;
if($p_end$pages)$p_end=$pages;
//頁碼循環結束數
後5個
echo
“[a
href=$link?page=1首頁/a]
“;
for($i=$p_head;$i=$p_end;$i++)
{
if($i!=$page)
echo
“a
href=$link?page=$i[$i]/a
“;
else
echo
“bstrike[$i]/strike/b
“;
}
echo
“
[a
href=$link?page=$pages末頁/a]”;
}
?
ThinkPHP使用心得分享-分頁類Page的用法
ThinkPHP中的Page類在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page類:
複製代碼
代碼如下:
import(‘ORG.Util.Page’);
//Page類的引入
$db
=
M(‘abc’);//實例化數據表abc
$where
=
array(
‘id’=’2’;
);//條件語句$where,例表中欄位id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數據總數count
$page
=
new
Page($count,
10);//實例化page類,傳入數據總數和每頁顯示10條內容
$limit
=
$page-firstRow
.
‘,’
.
$page-listRows;//每頁的數據數和內容$limit
$result
=$db-where($where))-limit($limit)-select();//分頁查詢結果
$this-result
=
$result;//賦值
$this-show
=
$page-show();//獲取分頁的底部信息
以上代碼是分頁類實現的基本語句,當然喜歡使用原生sql語句的朋友也可以配合原生sql語句實現查詢分頁:
複製代碼
代碼如下:
import(‘ORG.Util.Page’);
//Page類的引入
$db
=
M(‘abc’);//實例化數據表abc
$where
=
array(
‘id’=’2’;
);//條件語句$where,例表中欄位id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數據總數count
$page
=
new
Page($count,
10);//實例化page類,傳入數據總數和每頁顯示10條內容
$Modle
=
new
Model();//實例化新數據模型
$sql
=
‘select
id,name
from
abc
where
‘.$where.’
limit
‘.$page-firstRow.’,’.$page-listRows;//sql語句
$result
=
$Modle-query($sql);//執行sql語句
$this-result
=
$result
$this-show=$page-show();
當然,分布查詢獲取的內容也可以先對查詢完的數據進行處理再賦值,比如
複製代碼
代碼如下:
…
$result
=$db-where($where))-limit($limit)-select();//分頁查詢結果
$res
=
abc($result);//abc方法(自定義方法或php函數)對結果$result進行數據排序或重組處理等
$this-result
=
$res;//賦值
這個簡單的PHP分頁類,該如何調用?感謝。~
0代表開始的下標,比如一頁顯示10條的話,那麼第一頁就是0,10,第二頁就是(2-1)*10,10,第三頁就是(3-1)*10,10
所以你那個0 就是寫 limit($page-1)*$pagenum,$pagenum
原創文章,作者:AQJI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133081.html