php基于數組的分頁實現

關于數組的分頁函數,用數組進行分頁的好處是可以方便的進行聯合多表查詢,只需要將查詢的結果放在數組中就可以了以下是數組分頁的函數,函數page_array用于數組的分頁,函數show_array用于分頁函數的操作及顯示,需要配合使用.兩個函數通過全局變量$countpage發生聯系,此變量用于跟蹤總頁碼數.

<?php  
/** * 數組分頁函數  核心函數  array_slice * 用此函數之前要先將數據庫里面的所有數據按一定的順序查詢出來存入數組中 * $count   每頁多少條數據 * $page   當前第幾頁 * $array   查詢出來的所有數組 * order 0 - 不變     1- 反序 */   function page_array($count,$page,$array,$order){  global $countpage; #定全局變量  $page=(empty($page))?'1':$page; #判斷當前頁面是否為空 如果為空就表示為第一頁面   $start=($page-1)*$count; #計算每次分頁的開始位置  if($order==1){  $array=array_reverse($array);  }     $totals=count($array);    $countpage=ceil($totals/$count); #計算總頁面數  $pagedata=array();  $pagedata=array_slice($array,$start,$count);  return $pagedata;  #返回查詢數據  
}  
/** * 分頁及顯示函數 * $countpage 全局變量,照寫 * $url 當前url */  
function show_array($countpage,$url){  $page=empty($_GET['page'])?1:$_GET['page'];  if($page > 1){  $uppage=$page-1;  }else{  $uppage=1;  }  if($page < $countpage){  $nextpage=$page+1;  }else{  $nextpage=$countpage;  }  $str='<div style="border:1px; width:300px; height:30px; color:#9999CC">';  $str.="<span>共  {$countpage}  頁 / 第 {$page} 頁</span>";  $str.="<span><a href='$url?page=1'>   首頁  </a></span>";  $str.="<span><a href='$url?page={$uppage}'> 上一頁  </a></span>";  $str.="<span><a href='$url?page={$nextpage}'>下一頁  </a></span>";  $str.="<span><a href='$url?page={$countpage}'>尾頁  </a></span>";  $str.='</div>';  return $str;  
}  
?>

  

<?php
class PaginationArray{public $pageArray=array(); //數組public $pageSize=10; //每頁顯示記錄數public $current= 1; //當前頁private $total=0; //總頁數private $prev=0; //上一頁private $next=0; //下一頁public $argumetsOther='';//設置參數function __construct($array=array(),$pageSize=10,$current=1){$this->pageArray=$array;$this->pageSize=$pageSize;$this->current=$current; }/*通過數組進行初始化* * 數組為關聯數組,參數索引為pageArray,pageSize,current* */function setArguments($arr){if (is_array($arr)){$this->pageArray=$arr['pageArray'];$this->pageSize=$arr['pageSize'];$this->current=$arr['current'];}else{return ;}}//返回鏈接function page(){$_return=array();/*calculator*/$this->total=ceil(Count($this->pageArray)/$this->pageSize);$this->prev=(($this->current-1)<= 0 ? "1":($this->current-1));$this->next=(($this->current+1)>=$this->total ? $this->total:$this->current+1);$current=($this->current>($this->total)?($this->total):$this->current);$start=($this->current-1)*$this->pageSize;$arrleng=count($this->pageArray);for($i=$start;$i<($start+$this->pageSize);$i++){if($i >= $arrleng)break;array_push($_return,$this->pageArray[$i]);}$pagearray["source"]=$_return;$pagearray["links"]=$this->linkStyle(2);return $pagearray;}//鏈接的樣式private function linkStyle($number=1){$linkStyle='';switch ($number){case 1:$linkStyle="<a href=\"?page=1\">first</a> <a href=\"?page={$this->prev}\">prev</a> <a href=\"?page={$this->next}\">next</a> <a href=\"?page={$this->total}\">end</a>";break;case 2:$linkStyle="<a href=\"?page=1&{$this->argumetsOther}\">首頁</a> <a href=\"?page={$this->prev}&{$this->argumetsOther}\">上一頁</a> <a href=\"?page={$this->next}&{$this->argumetsOther}\">下一頁</a> <a href=\"?page={$this->total}&{$this->argumetsOther}\">尾頁</a>";break;}return $linkStyle;}
}
//調用的實例
/*
header('Content-Type: text/html;charset=utf-8');
$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
$page= isset($_GET['page'])? $_GET['page'] : 1 ;
$arrayPage = new PaginationArray($array,"5",$page);
$r = $arrayPage->page();
foreach($r["source"] as $s){echo $s.'<br />';
}
echo $r["links"];
*/
?>

  

轉載于:https://www.cnblogs.com/microtiger/p/10283087.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252522.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252522.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252522.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

028 -bash-4.1$ 出現故障的原理及解決辦法?

最近在搭建分布式的時候&#xff0c;出現了這個問題&#xff0c;很不爽。下面是我的解決方式。 1.在用戶下刪除bash rm -rf /home/beifeng/.bash* 2.拷貝 cp /etc/skel/.bash* /home/beifeng 3.退出&#xff0c;再進入用戶 4.解釋 set |grep -i ps1 轉載于:https://www.cnblogs…

彈出ifream

top.$.jBox("iframe:"${ctx}/synopsis/hmlwxSynopsis/addItem, {title: "添加作品",width: 1000, height: 500, buttons:{關閉: true,確定:ok},submit:function(v, h, f){},loaded: function (jboxContent) {$(jboxContent).css(overflow-x,);$(jboxConten…

ORB-SLAM2中的Loop Closinng中DetectLoopCandidates函數解析

/函數的三要素是&#xff1a;函數返回值類型&#xff0c;函數名稱&#xff0c;函數參數 函數的返回值是裝有關鍵幀指針的vector 該函數是類KeyFrameDatabase的成員函數,函數名是DetectLoopCandidate 該函數的參數分別是KeyFrame類型的指針變量 pKF和最小得分vector<KeyFrame…

NYOJ2—括號配對問題

括號配對問題 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB 難度&#xff1a;3描述現在&#xff0c;有一行括號序列&#xff0c;請你檢查這行括號是否配對。輸入第一行輸入一個數N&#xff08;0<N<100&#xff09;,表示有N組測試數據。后面的N行輸入多…

李彥宏千字愿景內部信:10次提到“用戶”

中新網1月17日電 1月17日&#xff0c;百度公司創始人、董事長兼CEO李彥宏發出一封內部信&#xff0c;信中&#xff0c;李彥宏向員工闡述了百度愿景&#xff1a;成為最懂用戶&#xff0c;并能幫助人們成長的全球頂級高科技公司。他提出&#xff0c;百度要持續創新&#xff0c;“…

spring-boot 速成(8) 集成druid+mybatis

spring-boot與druid、mybatis集成&#xff08;包括pageHelper分頁插件&#xff09;, 要添加以下幾個依賴項: compile(mysql:mysql-connector-java:6.0.5)compile(tk.mybatis:mapper-spring-boot-starter:1.1.1)compile(org.mybatis.spring.boot:mybatis-spring-boot-starter:1.…

ORB-SLAM2中生成金字塔提取FAST角點和計算BRIEF描述子

//這個是類ORBextractor的帶參構造函數&#xff0c;并且使用初始化列表對該類中的這5個變量賦值 ORBextractor::ORBextractor(int _nfeatures, float _scaleFactor, int _nlevels,int _iniThFAST, int _minThFAST):nfeatures(_nfeatures), scaleFactor(_scaleFactor), nlevels(…

我們怎樣確保從大數據計算中獲得價值

我們怎樣確保從大數據計算中獲得價值 支持大數據方案并不是在硬件以及軟件層次終止&#xff0c;企業要想真正地從大數據中受益&#xff0c;領導者必須改變思考與對待信息的方式。 我們怎樣確保從大數據計算中獲得價值&#xff1f; 當所有可用數據都可用時&#xff0c;大數據…

jsoncpp-src-0.5.0.tar.gz 源碼錯誤!!!!

近期在做畢設&#xff0c;使用到了JsonCpp0.5.0版本號的源碼&#xff01;依照網上的安裝配置教程&#xff0c;搭建好環境后就能夠使用了&#xff01; 在這里就不浪費空間去將怎樣搭建開發環境了&#xff01;請大家去google一下就好了&#xff01;在解析一個Json文件時。程序總是…

青海省多地日降水量突破歷史極值

受高原槽和西北冷空氣的共同影響&#xff0c;青海省海西州茫崖等多地日降水量突破歷史極值。 李萬花 攝 受高原槽和西北冷空氣的共同影響&#xff0c;青海省海西州茫崖等多地日降水量突破歷史極值。 李萬花 攝 中新網西寧1月18日電 (孫睿 趙海梅)記者18日從青海省氣象局獲悉&am…

ORB-SLAM2中四叉樹管理特征點

當從圖像金字塔中的每一層圖像上提取特征點之后&#xff0c;都要先用四叉樹技術對這些特征點進行管理 //該類中定義了四叉樹創建的函數以及樹中結點的屬性 //bool bNoMore&#xff1a; 根據該結點中被分配的特征點的數目來決定是否繼續對其進行分割 //DivisionNode()&#xff…

Python多線程3:queue

queue模塊實現了多生產者。多消費者隊列。在多線程環境下&#xff0c;該隊列能實現多個線程間安全的信息交換。 queue模塊介紹 模塊實現了3種類型的隊列&#xff0c;差別在于隊列中條目檢索的順序不同。在FIFO隊列中。依照先進先出的順序檢索條目。在LIFO隊列中&#xff0c;最后…

微信小程序教程02:App(Object)和Page(Object) 構造器介紹

在/app.js中&#xff0c;有方法App&#xff0c;它的作用是注冊整個小程序的應用&#xff0c;其中可以傳入一些配置&#xff0c;或者存儲全局狀態。 App(Object) 構造器生命周期 屬性類型描述onLaunchFunction在小程序初始化時觸發&#xff0c;全局僅觸發一次onShowFunction小程…

阿里云.log

申請證書審核失敗的原因及處理方法;( 新添加站點 免費版 SSL 網頁內不能有 HTTPS的連接&#xff1b;更多點擊連接) 轉載于:https://www.cnblogs.com/q1104460935/p/8287377.html

SharePoint Search之(七)Search result- 結果源

在使用搜索引擎的時候。非常多情況下&#xff0c;用戶希望限定一下搜索范圍&#xff0c;以便更加easy找到想要的結果。在SharePoint 2013的search里&#xff0c;也支持類似的功能&#xff0c;SharePoint 默認提供了幾種范圍&#xff1a; 在SharePoint&#xff0c;這個叫Search …

曠視砸20億進軍AIoT,發布國內首個機器人協作大腦河圖

1 月 16 日&#xff0c;人工智能獨角獸曠視科技發布了機器人戰略&#xff0c;以及自 2018 年 4 月收購艾瑞思機器人&#xff0c;進軍機器人領域的最新進展——智能協同大腦河圖。在會上&#xff0c;曠視還大筆一揮&#xff0c;決定投入 20 億元&#xff0c;用于打造物流倉儲上下…

ORB-SLAM2-金字塔求解-特征點的提取-描述子的計算

//這個成員函數重載了函數括號運算符&#xff0c;讓他具有函數的特點 //但是還不知道在其他程序塊是如何應用這塊代碼的。 //InputArray和OutputArray是opencv中的兩個函數接口 void ORBextractor::operator()( InputArray _image, InputArray _mask, vector<KeyPoint>&a…

am335x uboot, kernel 編譯

一、設置環境變量// 寫在家目錄下面的 .bashrc 里面export KERNEL_PATH~/aplex/kernel3.2.0 // kernel 路徑export UBOOT_PATH~/aplex/uboot2011.09 // u-boot 路勁export ROOTFS_PATH~/aplex/filesystemexport TOOLFS_PATH~/aplex/toolsexport ARCHarm …

php+ajax簡單實現跨域(http+https)請求調用

當一個網站 a站 需要調用另一個網站 b站 列表文章時 比如&#xff1a;www.a123.com 調用 www.b456.com 文章 在 a站 建立php文件獲取 b站 資源文章到本地后&#xff0c;再傳遞a站前端 在網站 b456 下的文件為 <ul class"ls_wz"> <li><a href"#&q…