水电工888 发表于 2017-12-13 06:34:14

PHP+MYSQL分页实现

<?php  

("Content-type:text/html;");  

// 1、传入页码  $page = $_GET['p'];
  

  
// 2、根据页码取出数据
  
$pdo = new PDO('mysql:host=localhost;dbname=ceshi','root','root');
  
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
  

  
$sql = 'SELECT * FROM `goods` LIMIT :start,:offset';
  
$limit = ($page-1)*3;
  
$offset = 3;
  
$stmt = $pdo->prepare($sql);
  
$sqlnum = 'SELECT COUNT(*)FROM `goods`';
  
$stmtnum = $pdo->prepare($sqlnum);
  
$stmtnum->execute();
  
$num = $stmtnum->fetch(PDO::FETCH_ASSOC);
  
$stmt->bindParam(':start',$limit);
  
$stmt->bindParam(':offset',$offset);
  
if(!$stmt->execute()){
  throw new Exception('查找失败',1);
  }
  $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
  
($data);
  

  
// 3、显示数据+显示分页条
  
/**总页数**/
  
$end = ($num['COUNT(*)']/$offset)+1;
  

  
$page_banner ='<a href="'.$_SERVER['PHP_SELF'].'?p=1">&nbsp;&nbsp;&nbsp;首页</a>';
  
if($page <=1){
  $page_banner .= '<a>&nbsp;&nbsp;&nbsp;上一页</a>';
  
}else{
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page -1).'">&nbsp;&nbsp;&nbsp;上一页</a>';
  
}
  
if($page+3>4){
  $page_banner .= '...';
  
}
  
if(($page+4)>=$end){
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-3).'">&nbsp;&nbsp;&nbsp;'.($end-3).'</a>';
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-2).'">&nbsp;&nbsp;&nbsp;'.($end-2).'</a>';
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-1).'">&nbsp;&nbsp;&nbsp;'.($end-1).'</a>';
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end).'">&nbsp;&nbsp;&nbsp;'.($end).'</a>';
  
}else{
  for($i=0;$i<4;$i++){
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page+$i).'">&nbsp;&nbsp;&nbsp;'.($page+$i).'</a>';
  }
  
}
  

  
if(($page+4)<$end){
  $page_banner .= '...';
  
}
  

  
if($page <=$num['COUNT(*)']/$offset){
  $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page +1).'">&nbsp;&nbsp;&nbsp;&nbsp;下一页</a>';
  
}else{
  $page_banner .='<a>&nbsp;&nbsp;&nbsp;下一页</a>';
  
}
  

  
$page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.$end.'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;尾页</a>';
  

  
$page_banner .='<span>&nbsp;&nbsp;&nbsp;总共'.$end.'页</span>&nbsp;&nbsp;&nbsp;当前第<span>'.$page."页</span>";
  
echo $page_banner;
  
?>
页: [1]
查看完整版本: PHP+MYSQL分页实现