分享一個php分頁函數,分享一個php分頁函數數據

本文目錄一覽:

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通用分頁函數該怎麼寫

function page($sql,$pagesize){

$nowpage=$_GET[‘nowpage’];//獲取當前也

$result=mysql_query($sql);//執行sql查詢語句

$total = mysql_num_rows($result);//總記錄條數

$totalpage = ceil($total/$pagesize);//總頁數

$nowpage=$nowpage1?1:$nowpage;//保證頁數始終大於或等於1

if(!$total){//如果沒有記錄則返回0

return 0;

exit;

}

$nowpage=$nowpage=$totalpage?$totalpage:$nowpage;//判斷當前也是否大於總頁數 如果大於總頁數則當前頁為總頁數

$nowrow=($nowpage-1)*$pagesize;//當前記錄的位置

$result = mysql_query($sql.” limit $nowrow,$pagesize”);

$url=$_SERVER[‘PHP_SELF’];//當頁的url地址

if($nowpage==1)//如果頁數只有一頁 則首頁和上一頁無鏈接

$st= “div align=’center’首頁|上一頁”;

else

$st= “a href=$url?nowpage=1首頁/a | a href=$url?nowpage=”.($nowpage-1).”上一頁/a”;

if($nowpage==$totalpage) //如果頁數是最後一頁 則末頁和下一頁無鏈接

$st.=”| 下一頁 | 末頁 “;

else

$st.= “| a href=$url?nowpage=”.($nowpage+1).”下一頁/a | a href=$url?nowpage=$totalpage末頁/a”;

$st.= ” 到第 select name=’nowpage’ size=’1′ onchange=’window.location=\”$url?nowpage=\”+this.value’\n”;//指定跳轉至哪一頁

$st.=”option value=’$nowpage’ select$nowpage/option\n”;

for ($i = 1; $i = $totalpage; $i++) {

if ($i == $nowpage){}

else

$st.=”option value=’$i’$i/option\n”;

}

$st.=”/select 頁/br”;

$st.=”頁次:”.$nowpage.” /”. $totalpage.”頁 共”.$total.”條信息” ;

return array($result,$st);

}

自定義PHP分頁函數

以下為引用的內容:

?

//為了避免重複包含文件而造成錯誤,加了判斷函數是否存在的條件:

if(!function_exists(pageft)){

//定義函數pageft(),三個參數的含義為:

//$totle:信息總數;

//$displaypg:每頁顯示信息數,這裡設置為默認是20;

//$url:分頁導航中的鏈接,除了加入不同的查詢信息「page」外的部分都與這個URL相同。

// 默認值本該設為本頁URL(即$_SERVER[“REQUEST_URI”]),但設置默認值的右邊只能為常量,所以該默認值設為空字元串,在函數內部再設置為本頁URL。

function pageft($totle,$displaypg=20,$url=”){

//定義幾個全局變數:

//$page:當前頁碼;

//$firstcount:(資料庫)查詢的起始項;

//$pagenav:頁面導航條代碼,函數內部並沒有將它輸出;

//$_SERVER:讀取本頁URL「$_SERVER[“REQUEST_URI”]」所必須。

global $page,$firstcount,$pagenav,$_SERVER;

//為使函數外部可以訪問這裡的「$displaypg」,將它也設為全局變數。注意一個變數重新定義為全局變數後,原值被覆蓋,所以這裡給它重新賦值。

$GLOBALS[“displaypg”]=$displaypg;

$page=$_GET[‘page’];

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中的正規表達式」()

$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($totle/$displaypg); //最後頁,也是總頁數

$page=min($lastpg,$page);

$prepg=$page-1; //上一頁

$nextpg=($page==$lastpg ? 0 : $page+1); //下一頁

$firstcount=($page-1)*$displaypg;

//開始分頁導航條代碼:

$pagenav=”顯示第 B”.($totle?($firstcount+1):0).”/B-B”.min($firstcount+$displaypg,$totle).”/B 條記錄,共 $totle 條記錄”;

//如果只有一頁則跳出函數:

if($lastpg=1) return false;

$pagenav.=” a href=’$url=1’首頁/a “;

if($prepg) $pagenav.=” a href=’$url=$prepg’前頁/a “; else $pagenav.=” 前頁 “;

if($nextpg) $pagenav.=” a href=’$url=$nextpg’後頁/a “; else $pagenav.=” 後頁 “;

$pagenav.=” a href=’$url=$lastpg’尾頁/a “;

//下拉跳轉列表,循環列出所有頁碼:

$pagenav.=” 到第 select name=’topage’ size=’1′ onchange=’window.location=\”$url=\”+this.value’\n”;

for($i=1;$i=$lastpg;$i++){

if($i==$page) $pagenav.=”option value=’$i’ selected$i/option\n”;

else $pagenav.=”option value=’$i’$i/option\n”;

}

$pagenav.=”/select 頁,共 $lastpg 頁”;

}

}

?

php=mysql調用方法:

?

//(前面程序略)

include(“pageft.php”); //包含「pageft.php」文件

//取得總信息數

$result=mysql_query(“select * from mytable”);

$total=mysql_num_rows($result);

//調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所以省略掉)。

pageft($total,10);

//現在產生的全局變數就派上用場了:

$result=mysql_query(“select * from mytable limit $firstcount,$displaypg “);

while($row=mysql_fetch_array($result)){

//(列表內容略)

}

?

//———–用法

連接sqlserver

?php

$query=”select * from zhufu”;

$result=mssqlresult($query);

$numrows = mssql_num_rows($result);

$pagesize=20;

$Url=”index.php”;

pageft($numrows,$pagesize,$Url);

$sql = “select top $pagesize * from zhufu where (id not in (select top $firstcount id from zhufu order by id desc)) order by id desc”;

//echo $sql;

$result1= mssqlresult($sql);

while( $row=mssql_fetch_assoc($result1))

{

$row1=trim($row[“city”]).trim($row[“xuexiao”]);

echo

“tr

td class=’bline fontblack’ align = ‘center'”.$row[“id”].”/td

td class=’bline’ align=’left’span class=’fontgreen’font color=’green'”.trim(iconv(“gb2312″,”utf-8”,$row[“sendname”])).”/font /span給”.trim(iconv(“gb2312″,”utf-8″,$row1)).”的font color=’blue'”.trim(iconv(“gb2312″,”utf-8”,$row[“name”])).”/font 的祝福:a href=’info.php?id=”.$row[“id”].”‘ target=’_blank’font color=’#E60638′”.trim((cut_str(iconv(“gb2312″,”utf-8”,$row[“neirong”]),20))).”…./font/a/td

td class=’bline’ align = ‘center'”.$row[“riqi”].”/td

/tr

“;

}

?

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200958.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-06 11:28
下一篇 2024-12-06 11:29

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29

發表回復

登錄後才能評論