為取出的每個陣列中增加一個自增的id(注意此ID不是資料庫中存的自增id欄位)

程式設計師_小周發表於2017-08-25
應用場景:如後臺管理給每個列增加一個序號,遞增,而且需要根據頁數來進行對應,如第一頁顯示的序號是1-10,第二頁顯示的是11-20。以此類推。也許你會說資料庫裡存的時候不就是按照ID自增進行儲存的麼,那麼問題來了,
1:如果你資料庫裡刪除了幾條資料,id不對應,那麼在前臺點選相應的頁碼,進到的頁面還是按照順對應來的麼,如你刪除了33條資料,那麼前臺點選第三頁,顯示的事31-41,因為33條資料沒了。
2:如果需要根據不同的需求進行排序呢。那麼前臺是不是將會亂套了,完全沒有規則了。
針對以上問題(解決方案):
前臺點選穿兩個引數就能解決。一個是頁碼(page_num),一個是每頁顯示的條數(page_size)
示例程式碼:
<?php

public function ajaxRedList(){
	$page_index 	= $_POST['page_index']?$_POST['page_index']:1;
	$page_number 	= $_POST['page_number']?$_POST['page_number']:10;
	// 用的是TP3.1 比較老的框架,近期準備換laravel
	$cash 		= M('test');
	$cashList 	= $cash->page($page_index,$page_number)->select();
	$count  	= $cash->count();
	$arr = $data 	= array();
	if($cashList){
		//注意標紅區域
 		$index_num = ($page_index-1)*$page_number;
		foreach($cashList as $kcash=>$vcash){
			$index_num = $index_num+1;
			$arr['coupon_name']	= $vcash['coupon_name'];// 紅包名稱
			$arr['total_num']	= $vcash['total_num'];
			$arr['index_num']	= $index_num;
			$data[] = $arr;
			$arr	= '';
		}
	}else{
		$this->ajaxReturn(array(),'暫無資料',0);
	}
$datas = array();
$datas['red_list'] 	 = $data;
$datas['total_list_num'] = $count; 
$this->ajaxReturn($datas,'請求成功',1);
}


相關文章