Blogger Information
Blog 61
fans 0
comment 0
visits 62937
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
制作数据表的分页
Pengsir
Original
575 people have browsed it

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

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post