標籤:
/** * 數組分頁函數 核心函數 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;}測試:$arrTr = array( 0=>array(1,‘張三‘,‘100.00‘,‘新手‘,‘1988-06-12‘), 1=>array(2,‘李四‘,‘110.00‘,‘新手‘,‘1989-06-12‘), 2=>array(3,‘王五‘,‘120.00‘,‘新手‘,‘1998-06-12‘), 3=>array(4,‘趙六‘,‘130.00‘,‘新手‘,‘1980-06-12‘), ); $count = 2; $page=empty($_GET[‘page‘])?1:$_GET[‘page‘]; $d = page_array($count,$page,$arrTr,0); foreach($d as $v){ echo $v[0].‘--‘.$v[1].‘--‘.$v[2].‘--‘.$v[3].‘--‘.$v[4]."\n\r"; } echo show_array($countpage,‘‘);
關於數組的分頁函數,用數組進行分頁的好處是可以方便的進行聯合多表查詢,只需要將查詢的結果放在數組中就可以了以下是數組分頁的函數,函數page_array用於數組的分頁,函數show_array用於分頁函數的操作及顯示,需要配合使用.兩個函數通過全域變數$countpage發生聯絡,此變數用於跟蹤總頁碼數.
PHP基於數組的分頁函數(核心函數array_slice())