博主信息
博文 61
粉丝 0
评论 0
访问量 74667
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
制作数据表的分页
Pengsir
原创
768人浏览过

PHP代码

<?php
/*分页查询原理
 * 分页的原理:
 * 1.LIMIT参数的作用:偏移量与显示数量
 * 2.如果控制每页显示的数量
 * 3.接收GET参数,用p表示当前页数,每页显示3条
 * 4.需要的参数:
 * (1).totalPage 总页数
 * (2).totalNumber 一共有多少条数据
 * (3).pageSize 每页显示多少条数据
 * (4)currentPage 当前第几页
 * (5)*.rangeStart 起始页
 * (6)*.rangeEnd 末页
 * 5.当前偏移量的计算公式:(页数-1)*每页显示的数量
 * offset = (page-1)*num
 */
//1.用PDO预处理来获取表中的全部数据
header('Content-Type:text/html; charset=UTF-8');

$page = isset($_GET['p'])? $_GET['p']:1;
$page = ($page == 0 ) ? 1 : $page;
//$unm表示每页显示的记录数
$num = 3;
$offset = ($page-1)*$num;

$pdo = new PDO('mysql:dbname=demo','root', 'root');
//LIMIT :offset,num  limit限制的意思  第一个参数:offset是偏移量,第二个参数是一个常量,显示多少条数据 为是PDO预处理的写法
$sql = "SELECT `id`,`name`,`email` FROM `user1` LIMIT :offset, :num";
$pdoStmt = $pdo->prepare($sql);
//绑定第一个占位符offset
$pdoStmt->bindParam('offset', $offset, PDO::PARAM_INT);
//绑定第二个占位符num
$pdoStmt->bindParam('num', $num, PDO::PARAM_INT);
//注:$pdoStmt调用execute()方法,这个方法里面不传参数
$res = $pdoStmt->execute();
echo '<h3 align="center">用户信息表</h3>';
echo '<table border="1" cellspacing="0" cellpadding="5" width="70%" align="center">';
echo '<tr bgcolor="#90ee90"><th>ID</th><th>用户名</th><th>邮箱</th></tr>';
foreach ($pdoStmt as $row) {
    echo '<tr align="center">';
    echo '<td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['email'].'</td>';
    echo '</tr>';
}
echo '</table>';

//计算共计多少页
$pdoStmt2 = $pdo->prepare("SELECT * FROM user1");
$pdoStmt2->execute();
//$totalPage总页数  ceil向上取整    $pdoStmt2->rowCount()总页数   $num每页数
$totalPage = ceil($pdoStmt2->rowCount() / $num);

//编写下一页到总页数,你再点下一页会越界,必须设置
//($totalPage-1)这里减1是:如果是最大页你点了下一页多了一页必须减回来,否则设置当前页
$page = ($page == $totalPage) ? ($totalPage-1) : $page;

//创建分页条
echo '<h3 align="center">';
echo '<a href="http://www.php.io/30/page.php?p=1">首页</a>';
echo '<a href="http://www.php.io/30/page.php?p=';
echo (($page-1)==0)?1:($page-1);
echo '">上一页</a>';
for ($i=1; $i<=$totalPage; $i++) {
    echo '<a href="http://www.php.io/30/page.php?p='.$i.'">'.$i.'</a>';
}
echo '<a href="http://www.php.io/30/page.php?p='.($page+1).'">下一页</a>';
echo '<a href="http://www.php.io/30/page.php?p='.$totalPage.'">尾页</a>';
echo '</h3>';

效果图

制作数据表的分页.png

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学