-
-
/**
- * PHP分頁程式碼
- **/
- /**
- * 連結資料庫
- * bbs.it-home.org
- * @param string $strHost 資料庫伺服器主機位址
- * @param string $strAccount 資料庫帳號
- * @parawordm string $strword資料庫密碼
- * @return resource
- **/
- function mysqlConnect($strHost,$ strAccount,$strPassword,$strDBname)
- {
- $strHost=trim($strHost);
- $strAcount=trim($strAccount);
- $strPassword=trim($strword); $resLink=mysql_connect($strHost,$strAccount,$strPassword);
- if(!$resLink)
- {
- return false;
- }
- else { //set names ... 依照資料庫的編碼設定
- mysql_query('set names utf8',$resLink);
- $isValidate=mysql_select_db($strDBname,$resLink);
- if($isValidate) {
- return $resLink;
- }
- else
- {
- return false;
- }
- }
- }
- /
- *接受分頁的當前頁碼,計算出對應的參數值
- *包括:開始頁碼$arrParameter['start']
- * 結束頁碼$arrParameter['end']
- * 總的記錄數$arrParameter['all']
- * 每頁顯示的記錄數$arrParameter['nums']
- * 頁面中顯示的連結數$arrParameter['links']
- * 待查詢的sql語句$arrParameter['sql']
- * 分頁條類型$arrParameter['tag']
- *
- int $intPage 目前頁碼值
- int $intNums 每頁顯示的記錄數
- int $intLinks 頁面中顯示的連結數
- string $strTablename 分頁顯示資料表
- resource $resLink 資料連線句柄
- array
- ***/🎝>*
- function calculateParamester($intPage,$intNums,$intLinks,$strTablename,$resLink){
- $intPage=(int)$intPage;
- $intNums=(int)$intNums; intLinks=(int)$intLinks;
- //顯示的連結數不是奇數時調整為奇數
- if($intLinks % 2 == 0){
- $intLinks--;
- }
- //每頁顯示的記錄數不大於0時調整為10
- if($intNums $intNums=10;
- }
- //計算總的頁數
- $strSql1="select count(*) as num from `{$strTablename}`";
- $resObj1=mysql_query($strSql1,$resLink); $arrObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fObj1=mysql_fOb ;
- $intAllRecords=$arrObj1['num'];
- $intAllPage=ceil($intAllRecords/$intNums);
- //sql語句limit關鍵字的第一個參數
- $intOffset =($intPage-1)*$intNums;
- //只顯示上一頁下一頁的情況即顯示的連結數不大於0
- if($intLinks $ strSql2="select * from `{$strTablename}` limit {$intOffset},{$intNums}";
- $arrParameter['start']=null;
- $arrParameter['end']=null;
- $arrParameter['page']=$intPage;
- $arrParameter['nums']=$intNums;
- $arrParameter['links']=null;
- $arrParameter['all' ]=$intAllPage;
- $arrParameter['sql']=$strSql2;
- $arrParameter['tag']=1;
- //顯示分頁條碼時的情況即顯示的連結數大於0
- }else{
- //當總的記錄大於0的情況
- if($intAllPage > 0){
- //確定目前頁碼的值
- if($intPage $intPage=1;
- }
- if($intPage >= $intAllPage){
- $intPage=$intAllPage;
- }
- $intHalfLinks=floorintAllPage;
- }
- $intHalfLinks=floorintAllPage;
- }
- $intHalfLinks=floorintAllPage;
- }
- $intHalfLinks=floorintAllPage;
- }
- $intHalfLinks=floorint($intLinks=floor /2);
- //計算開始頁碼的值
- $intStartPage=$intPage-$intHalfLinks;
- if($intStartPage $intStartPage=1;
- }
- if(($intAllPage-$intPage) //$intStartPage=$intPage-$intHalfLinks-($intHalfLinks-($intAllPage-$intPage)); //$🎜> //$ intStartPage=$intPage-$intHalfLinks-$intHalfLinks $intAllPage-$intPage;
- $intStartPage=$intAllPage-2*$intHalfLinks;
- }
- //計算結束頁碼的值
- $intEndPage= $intPage $intHalfLinks;
- if($intEndPage =$intLinks){
- $intEndPage=$intLinks;
- }
- if($intEndPage > $ $intEndPage=$intAllPage;
- }
- //建立待執行的sql語句
- $strSql2="select * from `{$strTablename}` limit {$intOffset},{$intNums}" ;
- $arrParameter['start']=$intStartPage;
- $arrParameter['end']=$intEndPage;
- $arrParameter['page']=$intPage;
- $arrParameter[' nums']=$intNums;
- $arrParameter['links']=$intLinks;
- $arrParameter['all']=$intAllPage;
- $arrParameter['sql']=$strSql2;
- $arrParameter['tag']=2;
- //當總的記錄等於0的情況
- }else{
- $arrParameter['start']=null;
- $arrParameter[ 'end']=null;
- $arrParameter['page']=null;
- $arrParameter['nums']=null;
- $arrParameter['links']=null;
- $ arrParameter['all']=null;
- $arrParameter['sql']=null;
- $arrParameter['tag']=3;
- }
- } return $arrParameter; }
- /**
- * 建立分頁條
- *
- * @param int $intPage 目前顯示的頁碼值
- * @param int $intStartPage 開始頁碼
- * @param int $intEndPage 結束頁碼
- * @param int $intAllRecords 總的記錄數
- * @param int $intTag 分頁條類型標記
- * @return string
- **/
- function createPagingItem($intPage,$intStartPage,$intEndPage,$intAllPage,$intTag){
- $strPageItem='';
- //只顯示上上。一頁下一頁的情況即顯示的連結數不大於0
- if($intTag == 1){
- if($intAllPage $strPageItem.='首頁 尾頁';
- }else{
- if($intPage == 1){
- $strPageItem.="首頁 上一頁";
- $strPageItem.=" ";
- }else{
- $strPageItem.="首頁";
- $strPageItem.=" ";
- $strPageItem.="上一頁";
- $strPageItem.=" ";
- }
- if($intPage == $intAllPage){
- $strPageItem.="下一頁 尾頁";
- }else{
- $strPageItem.="下一頁頁";
- $strPageItem.=" ";
- $strPageItem.="尾頁" ;
- }
- }
- }
- //顯示分頁條碼時的情況即顯示的連結數大於0
- if($intTag == 2){
- if($intPage == 1){
- $strPageItem.="首頁 上一頁";
- $strPageItem.=" ";
- }else{
- $strPageItem.="首頁";
- $strPageItem.=" ";
- $strPageItem.="上一頁";
- $strPageItem.=" ";
- }
- for($i=$intStartPage;$i if($ i == $intPage){
- $strPageItem.=$i;
- }else{
- $strPageItem.="[".$i ."]";
- }
- $strPageItem.=" ";
- }
- if($intPage == $intAllPage){
- $strPageItem.="下一頁 尾頁";
- }else{
- $strPageItem.="下一頁";
- $strPageItem.=" ";
- $strPageItem.="尾頁";
- }
- }
- //當總的記錄等於0的情況
- if($intTag == 3){
- $strPageItem.='首頁 尾頁';
- }
- return $strPageItem;
- }
- /**
- * 取得並輸出資料
- *
- * @param string $strSql 查詢的sql語句
- * @param array $arrFields 需要顯示的欄位所組成的一個陣列
- * @param resource $resLink 資料連接句柄
- * @return string
- **/
- function outPutData($strSql,$arrFields,$resLink){
- $resObj=mysql_query($strSql,$resLink);
- $arrObj= array();
- $strOutPutData='';
- $arrFieldsCode=array_keys($arrFields);
- while(@$arrRow=mysql_fetch_assoc($resObj)){
- $arr🎜[ arrRow;
- }
- $strOutPutData.="
";- $strOutPutData.='
';- foreach($arrFieldsCode as $strVal){
- $strOutPutData.="
".$arrFields[trim($strVal)]." | ";
- }
- $strOutPutData.="
";
- foreach($arrObj as $arrVal){
- $strOutPutData.="
";- foreach($arrFieldsCode as $strVal){
- $strOutPutData.="
".$arrVal[ trim($strVal)]." | ";
- }
- $strOutPutData.="
";
- }
- $strOutPutData.="
";
- return $strOutPutData;
- }
- // 連線並選擇資料庫
- // 注意:你應該修改資料庫帳號和密碼以及資料庫名稱
- $resLink=mysqlConnect('localhost','root','root','ztlibrary') ;
- // 求分頁參數注意:你應該修改資料表名稱
- $arrParameter=calculateParamester(@$_GET['page']?$_GET['page']:1,
- 10, 5,'book_info',$resLink);
- //待顯示的數據,由表的字段名為其鍵值,字段名的中文解釋為其元素值
- //注意:你應該根據你的資料表修改下面這個陣列
- $arrFields=array('Id_code'=>'圖書編碼', 'Book_name'=>'圖書名稱',
- 'Book_ISBN'=>'ISBN','Contribute_man' =>'來源','Issue_time'=>'出版時間','Storing_time'=>'入庫時間');
- ?>
- li>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-
- php分頁示範--www.yuju100.com
-
-
-
//輸出分頁資料
- echo outPutData($arrParameter['sql'],$arrFields,$resLink);
- ?>
-
-
//顯示分頁條
- echo createPagingItem($arrParameter['page'],$arrParameter['start'],$arrParameter['end'],
- $arrParameter['all'],$arrParameter['tag']);
- ?>
-
-
-
-
複製程式碼
|