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>';
效果图