php搜索條件分頁;將條件導入分頁

之前用戶thinkphp 做分頁遇到一些分頁問題;搜索時將搜索條件帶入分頁:

 $map['article_title'] = urldecode($_GET['article_title']);
	$date_sosuo['article_title'] = array('like','%'.$map['article_title'].'%');
	$count  = $article->where($date_sosuo)->count();  //總條數
	$Page   = new Page($count,10);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數 
	foreach($map as $key=>$val)
	{
		$Page->parameter.="$key=".urlencode($val)."&";
	}
        $show   = $Page->show();	 // 分頁顯示輸出
	$this->assign('page',$show); // 賦值分頁輸出
         $list= $article->where($date_sosuo)->order("article_sort")->limit($Page->firstRow.','.$Page->listRows)->select();



這樣做能成功;

但是我在頁面做一些交付的時候很麻煩;所有自己就寫了一個php原生的分頁帶入條件;

 

 

 public function index(){
		$client = M('clients'); //客戶表
		
		//搜索條件
		$where = '';
		if($_GET['clients_state']){
			$page_w['clients_state'] = urldecode($_GET['clients_state']);
			$where['clients_state'] = array('like','%'.$page_w['clients_state'].'%');
		}
		if($_GET['clients_name']){
			$page_w['clients_name'] = urldecode($_GET['clients_name']);
			$where['clients_name'] = array('like','%'.$page_w['clients_name'].'%');
		}
		if($_GET['clients_phone']){
			$page_w['clients_phone'] = urldecode($_GET['clients_phone']);
			$where['clients_phone'] = array('like','%'.$page_w['clients_phone'].'%');
		}
		
		$where['clients_qiandan_time'] = array('lt','3600');
		
		$name_z = '';
		foreach($page_w as $ke=>$val){
			$name_z .= $ke.'='.$val.'&';
		}
		
		
		$count = $client->field('clients_id,clients_name,clients_phone')->where($where)->count();
		$Page_size = 10;  //分頁條數
		$page_count = ceil($count/$Page_size); //總頁數
		
		$init = 1;
		$page_len = 5;    //顯示頁碼數
		$max_p = $page_count; //最大頁數
		$pages = $page_count; //總頁數
		
		//判斷當前頁碼 
		if(empty($_GET['page'])||$_GET['page']<0){
			$page=1; 
		}else { 
			$page=$_GET['page']; 
		}
		$page_len = ($page_len%2)?$page_len:$pagelen+1;  //頁碼個數 
		$pageoffset = ($page_len-1)/2;  //頁碼個數左右偏移量
		$offset = $Page_size*($p-1); 
		$result = $client->field('clients_id,clients_name,clients_phone')->limit($offset,$Page_size)->where($where)->select();
		foreach($result as $v){
			echo $v['clients_name'].'<br/>';
		}
		echo '<br/>';
		$page_page = '';
		//1、得到 總頁數 $pages 、 每頁數 $Page_size、 顯示頁數 $page_len
		$page_page .= "$page/$pages 頁";
		if($page!=1){   //將條件帶入分頁
			$key.="<a class='paging' href=\"".$_SERVER['PHP_SELF']."?".$name_z."page=".($page-1)."\">上一頁</a>"; //上一頁 
		}else {
			$key.=" 上一頁 "; //上一頁 
		}
		if($pages>$page_len){ 
			//如果當前頁小於等於左偏移 
			if($page<=$pageoffset){ 
				$init=1; 
				$max_p = $page_len; 
			}else{//如果當前頁大於左偏移 
				//如果當前頁碼右偏移超出最大分頁數 
				if($page+$pageoffset>=$pages+1){ 
					$init = $pages-$page_len+1; 
				}else{ 
				//左右偏移都存在時的計算 
					$init = $page-$pageoffset; 
					$max_p = $page+$pageoffset; 
				}
			}
		}
		//輸出頁碼
		for($i=$init;$i<=$max_p;$i++){ 
			if($i==$page){ 
				$key.=' <span>'.$i.'</span>'; 
			} else {    //將條件帶入分頁
				$key.=" <a class='paging' href=\"".$_SERVER['PHP_SELF']."?".$name_z."page=".$i."\">".$i."</a>"; 
			} 
		}
		if($page!=$pages){    //將條件帶入分頁
			$key.=" <a class='paging' href=\"".$_SERVER['PHP_SELF']."?".$name_z."page=".($page+1)."\">下一頁</a> ";//下一頁 
		}else { 
			$key.=" 下一頁 ";//下一頁
		}
		echo $key; //輸出分頁
	}

輸出效果


使用原生的分頁,感覺速速快一點;也好用一點。

個人觀點,勿噴。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章