分页类的封装如下:
page.php
<?php // showPage(页号,总页数,分隔符) function showPage($page, $totalPage, $sep = " ") { $url = $_SERVER['PHP_SELF']; // 获取当前路径 // 首页 $index = ($page == 1) ? "首页" : "<a href='{$url}?page=1'>首页</a>"; // 尾页 $last = ($page == $totalPage) ? "尾页" : "<a href='{$url}?page={$totalPage}'>尾页</a>"; // 上一页 $prevPage = ($page >= 1) ? $page - 1 : 1; // 下一页 $nextPage = ($page >= $totalPage) ? $totalPage : $page + 1; // 上一页链接 $prev = ($page == 1) ? "上一页" : "<a href='{$url}?page={$prevPage}'>上一页</a>"; // 下一页链接 $next = ($page == $totalPage) ? "下一页" : "<a href='{$url}?page={$nextPage}'>下一页</a>"; // 当前页信息 $str = "总共{$totalPage}页/当前是第{$page}页"; $p = ""; // 生成页码链接 for ($i = 1; $i <= $totalPage; $i++) { // 当前页无连接 if ($page == $i) { $p .= "[{$i}]"; } else { $p .= "<a href='{$url}?page={$i}'>[{$i}]</a>"; } } // 拼接分页字符串 $pageStr = $str . $sep . $index . $sep . $prev . $sep . $p . $sep . $next . $sep . $last; return $pageStr; // 返回分页字符串 } ?>
一个调用分页类的例子
userlist.php
<?php include "../mysql.php"; include "../page.php"; // 连接数据库 $conn = new Mysql(); // 每页显示的记录数 $pageSize = 2; // 获取总记录数 $sql = "SELECT * FROM user;"; $totalRows = $conn->getResultNum($sql); // 总记录数 // 计算总页数 $totalPage = ceil($totalRows / $pageSize); // 获取当前页数 $page = isset($_REQUEST['page']) ? (int)$_REQUEST['page'] : 1; // 如果页数无效,则默认第一页 if ($page < 1 || $page == null || !is_numeric($page)) { $page = 1; } // 如果页数大于总页数,设为最后一页 if ($page >= $totalPage) { $page = $totalPage; } // 计算偏移量 $offset = ($page - 1) * $pageSize; // 查询当前页的数据 $sql = "SELECT * FROM user LIMIT {$offset}, {$pageSize}"; $result = $conn->sql($sql); // 输出数据表格 echo "<table style='text-align: center'>"; echo "<tr><td>用户名</td><td>密码</td><td>性别</td><td>邮箱</td></tr>"; // 输出每条记录 foreach ($result as $k => $v) { echo "<tr><td>{$v['name']}</td>"; echo "<td>{$v['password']}</td>"; echo "<td>{$v['sex']}</td>"; echo "<td>{$v['email']}</td></tr>"; } echo "</table>"; // 输出页码链接 echo showPage($page, $totalPage); echo "<hr/>"; // 关闭数据库连接 $conn->close(); ?>
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
    

















请登录后发表评论
注册
社交帐号登录