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>  ";
		}
	}		
	}		

猜你喜欢

转载自blog.csdn.net/feiyucity/article/details/85257247