Anonymous 发表于 2021-7-20 22:36:14

PHP简单分页省略中间页码

<?php
/**
* @desc created by sublime text3
* @author jxl <>
* @since 2017/05/06 23:06
*/
$host="localhost";
$user='root';
$pass='';
$link=mysql_connect($host,$user,$pass) or die('数据库连接失败');
mysql_select_db('demo');
mysql_query('set names "utf8"');

$pageSize=10;//每页5条
$bothNum=4;//当前页左右各显示4个页码
$cur_page=isset($_GET['cur_page'])?$_GET['cur_page']:1;//当前页数

$sql="select * from test_db";
$res=mysql_query($sql);
$total=mysql_num_rows($res);//总记录数
$pageNum=ceil($total/$pageSize);//总页数

$start=($cur_page-1)*$pageSize;
$sql="select * from test_db limit $start,$pageSize";
$res=mysql_query($sql);
while ($row=mysql_fetch_array($res)) {
   echo $row['id'].'---'.$row['name'].'---'.$row['age'];
   echo '<hr/>';
}

//上一页
$pagestr="";
if($cur_page==1){
   $pagestr.='<span>上一页</span>';
}else{
   $lastPage=$cur_page-1;
   $pagestr.="<a href='mysqldemo.php?cur_page=$lastPage'>上一页</a>"."";
}
// 想象分页如下,目前第 10 页,它两边最多只有 4 (bothnum) 个数字
// 1 ...6 7 8 9 *10* 11 12 13 14 15 ... 100
// echo $pagestr;
// 首页
if($cur_page-$bothNum>1){
   $pagestr.="<a href='mysqldemo.php?cur_page=1'>首页</a>";
   $pagestr.="<span>...</span>";
}
//当前页的左边
for($i=$bothNum;$i>=1;$i--){
   if(($cur_page - $i) < 1 ) { // 当前页左边花最多 bothnum 个数字
          continue;
      }
   $lastPage=$cur_page-$i;
   $pagestr.="<a href='mysqldemo.php?cur_page=$lastPage'>$lastPage</a>"."";
}
//当前页
$pagestr.="<span>$cur_page</span>"."";
//当前页右边
for($i=1;$i<=$bothNum;$i++){
   if(($cur_page + $i) > $pageNum) { // 当前页右边最多 bothnum 个数字
         break;
   }
   $lastPage=$cur_page+$i;
   $pagestr.="<a href='mysqldemo.php?cur_page=$lastPage'>$lastPage</a>"."";

}

//尾页
if(($cur_page+$bothNum)<$pageNum){
   $pagestr.="<span>...</span>"."";
   $pagestr .= '<a href="?cur_page='.$pageNum.'">尾页</a>'."";
}
//下一页
if($cur_page == $pageNum) {
      $pagestr .= '<span>下一页</span>';
    } else {
         $nextPage=$cur_page+1;
      $pagestr .= "<a href='mysqldemo.php?cur_page={$nextPage}'>下一页</a>";
    }
echo $pagestr;
echo "<hr/>";
echo '当前页数为:'.$cur_page.',总页数为:'.$pageNum;

页: [1]
查看完整版本: PHP简单分页省略中间页码