1. 程式人生 > >PHP簡單實現分頁功能 (九步) 搜尋實現

PHP簡單實現分頁功能 (九步) 搜尋實現

//分頁步驟
	//1 設定頁大小
	//2 計算記錄總數
	//3 計算頁總數 
	//4 接受當前頁碼?page=2
	//5 過濾越界
	//6 組裝sql語句
	//7 傳送sql語句
	//8 處理結果 
	//9 傳送超連結



//搜尋區域
	$keyword=empty($_GET['keyword'])?'':$_GET['keyword'];
	if(!empty($keyword)){
		$where='where username like "%'.$keyword.'%" ';
		$link="&keyword=".$keyword;
	}else{
		$where='';
		$link='';
	}
	//設定分頁 
	//1設定頁大小
	$page_size=5;
	//2計算記錄總數 
	$sql="select count(*) as c from ".DB_PREFIX."user ".$where;
	$count=connect($sql);
	$count=$count[0]['c'];
	if($count==0){
		echo "木有資料";
	}else{
	// var_dump($count);
	// exit;
	//3 計算頁總數 
    $page_count=ceil($count/$page_size);
	// 
	//4獲取當前頁碼 
	$page_num=empty($_GET['page'])?1:$_GET['page'];
    //5 設定越界 
	if($page_num<1){
		$page_num=1;
	}
	if($page_num>$page_count){
		$page_num=$page_count;
	}
	// echo $page_num;
	// exit;
	//6 組裝sql語句
	$limit="limit ".($page_num-1)*$page_size.",".$page_size;
	// echo $limit;
	// exit; 
	
	//7 準備sql語句
	$sql="select * from ".DB_PREFIX."user ".$where." order by id ".$limit;
	//echo $sql;
	// exit;
	// $page_num=connect($sql);
	// var_dump($limit);
	// exit;
	//$sql="select * from ".DB_PREFIX."user order by id";
	//var_dump($sql);
	//8 傳送sql語句 $data=connect($sql);
	if($data){ //
	   //此處為處理頁面 
	}
	  echo "<a href='?page=1".$link."'>首頁</a>
	        <a href='?page=".($page_num-1).$link."'>上一頁</a>
			<a href='?page=".($page_num+1).$link."'>下一頁</a>
			<a href='?page=".$page_count."'>尾頁</a>
			當前第".$page_num."頁 共".$page_count."頁本  有".(($page_num!=$page_count||$count%$page_size==0)?$page_size:($count%$page_size))."條資料  共".$count."條資料";
	 
	 echo "<br/>";






	 
	 
	 if($page_num>6){
		//如果訪問的當前頁碼>=7的,應該7-5=2開始,最大顯示到7+4=11;
		for($i=($page_num-5 );$i<=($page_num+4);$i++){
			echo "<a class='page' href='?page=".$i."'>".$i."</a>";
		}
	}else{
		//當前頁碼小於6,判斷頁總數是否大於10,如果10,最多顯示10個頁碼,否則等於$page_count個頁碼
		if($page_count<=10){
			$size=$paze_count;
		}else{
			$size=10;
		}
		for($i=1;$i<=$size;$i++){
			echo "<a class='page' href='?page=".$i."'>".$i."</a>  ";
		}
	}		
	}