分页

来源:互联网 发布:政府部门域名申请 编辑:程序博客网 时间:2024/06/03 20:34

效果图
分页

分页步骤

  • 1、获取分页按钮点击的页面
  • 2、设置每页显示的数量
  • 3、计算当前页第一条记录的编号
  • 4、数据库连接
  • 5、通过limit查询记录,获取分页数据,并封装到数组中
  • 6、获取表中记录数量
  • 7、计算出总页数,上一页页数,下一页页数
  • 8、加载模板,使用(数据数组,总页数,上一页页数,下一页页数)

判断,显示5个数字按钮

//  $pageTotal:总页数, $page:当前页数for($pageI=1; $pageI<=$pageTotal; $pageI++):    if($page<=2 && $pageI<=5){//左临界**重点内容**        echo $pageI;    }    elseif($page>=$pageTotal-1 && $pageI>=$pageTotal-4){//右临界        echo $pageI;    } elseif($pageI>=$page-2 && $pageI<=$page+2){        echo $pageI;    }endfor;

分页脚本

//获取分页按钮点击的页码$page = isset($_GET['page']) ? $_GET['page'] : 1;$pageNum = 5; //设置每页显示的数量$pageStart = ($page-1)*$pageNum; //计算当前页第一条记录的编号//数据库连接$conn = new mysqli('localhost', 'root', '123456', 'blog');if($conn->connect_error){    die("连接失败:" . $conn->connect_error);}$conn->query('set names utf8');//分页查询记录,并封装到一个数组中$sql = "select id, title, create_time from blog_article limit {$pageStart},{$pageNum}";$result = $conn->query($sql);$dataArr = [];while($row=$result->fetch_assoc()){    $dataArr[] = $row;}//获取blog_article表中的记录数量$sql = "select count(*) as count from blog_article";$result = $conn->query($sql);$row=$result->fetch_assoc();//计算$pageTotal = ceil($count/$pageNum); //总页数$pagePrevious = ($page>1) ? ($page-1) : 1; //上一页$pageNext = ($page<$pageTotal) ? ($page+1) : $pageTotal; //下一页//加载模板文件,显示数据include 'template.php';

模板文件

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"></head><body><div class="jumbotron">    <h1 class="text-center">Hello, world!</h1></div><div class="container">    <div class="row">        <table class="table table-striped">            <thead>            <th>ID</th>            <th>标题</th>            <th>创建时间</th>            </thead>            <tbody>                <?php foreach($dataArr as $v): ?>                <tr>                    <td><?php echo $v['id']; ?></td>                    <td><?php echo $v['title']; ?></td>                    <td><?php echo date('Y年m月d日',$v['create_time']); ?></td>                </tr>                <?php endforeach; ?>            </tbody>        </table>    </div>    <div class="row text-center">        <nav aria-label="Page navigation">            <ul class="pagination">                <li><a href="?page=1">首页</a></li>                <li><a href="?page=<?php echo $pagePrevious; ?>">上一页</a></li>               <!-- 判断,显示5个数字按钮 -->                <?php for($pageI=1; $pageI<=$pageTotal; $pageI++): ?>                    <?php if($page<=2 && $pageI<=5){?>                        <li><a href="?page=<?php echo $pageI; ?>"><?php echo $pageI; ?></a></li>                    <?php }elseif($page>=$pageTotal-1 && $pageI>=$pageTotal-4){?>                        <li><a href="?page=<?php echo $pageI; ?>"><?php echo $pageI; ?></a></li>                    <?php } elseif($pageI>=$page-2 && $pageI<=$page+2){?>                        <li><a href="?page=<?php echo $pageI; ?>"><?php echo $pageI; ?></a></li>                    <?php } ?>                <?php endfor ?>                <li><a href="?page=<?php echo $pageNext; ?>">下一页</a></li>                <li><a href="?page=<?php echo $pageTotal; ?>">末页</a></li>                <li><span><?php echo $pageTotal; ?></span></li>            </ul>        </nav>    </div></div><script src="lib/jquery/jquery-3.2.1.min.js"></script><script src="lib/bootstrap/js/bootstrap.min.js"></script></body></html>
原创粉丝点击