前几天冷月写了一篇博文《php基础编程-php链接mysql数据库-mysqli的简单使用》,不少小伙伴在学习后都知道了php与mysql数据库的链接,今天冷月分享一个简单的分页实例php
首先,咱们来看一下效果:
html
这个案例其实很简单,那么,咱们如何肯定当前页所须要的数据是哪些呢?主要用到的核心sql语句就是:mysql
SELECT * FROM 表名 LIMIT 起始位置,显示条数
咱们应该在url后面采用GET的方式传递一个page的参数,好比:
http:// page.php?p=1sql
而后用$_GET['p']来接收到,这样咱们就拿到了当前的页面。而后咱们要定义一个常量来保存一页显示的条数。这样,咱们就可以凭借起始位置,显示条数来获取数据了。数据库
示例代码以下:编程
/** * Created by 冷月小白. * 微信公众号: 学长冷月 */ <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <style> div.page{ text-align: center; } div.content { height: 300px; } div.page a{ border: 1px solid #aaaadd; text-decoration: none; padding: 2px 5px 2px 5px; margin: 2px; } div.page span.current{ border: 1px solid #000099; background-color: #000099; padding: 4px 6px 4px 6px; margin: 2px; color: #ffffff; font-weight: bold; } div.page span.disable{ border: 1px solid #eeeeee; padding: 2px 5px 2px 5px; margin: 2px; color: #dddddd; } div.page form{ display: inline; } </style> <body> <?php /*1.传入页码*/ $page = $_GET['p']; /*2.根据页码取出数据, php -> mysql*/ $host = "localhost"; $username = "root"; $password = "123456"; $db = "page"; $pageSize = 3; $showPage = 5; //链接数据库 $conn = mysqli_connect($host, $username, $password, $db); if (!$conn) { var_dump("链接失败"); } //设置数据库的编码格式,防止乱码 mysqli_query($conn, "SET NAMES UTF8"); //编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数 $sql = "SELECT * FROM test LIMIT " . ($page - 1) * $pageSize . ",{$pageSize}"; //把sql语句传送数据中 $result = mysqli_query($conn, $sql); //处理数据 echo "<div class='content'>"; echo "<table border='1' cellspacing='0' width='40%' align='center'>"; echo "<tr><td>ID</td><td>name</td></tr>"; while ($row = mysqli_fetch_assoc($result)) { echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td></tr>"; } echo "</table></div>"; //释放结果,关闭链接 mysqli_free_result($result); //获取数据总数 $total_sql = "SELECT COUNT(*) FROM test"; $total_result = mysqli_fetch_assoc(mysqli_query($conn, $total_sql)); $total = $total_result['COUNT(*)']; $total_page = ceil($total / $pageSize); mysqli_close($conn); //3.显示数据 + 分页条 $page_banner = '<div class="page">'; if ($page > 1) { $page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=1" . "'>首页</a>"; $page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=" . ($page - 1) . "'>上一页</a>"; }else{ $page_banner .= "<span class='disable'>首页</span>"; $page_banner .= "<span class='disable'>上一页</span>"; } //初始化数据 $start = 1; //开始页面 $end = $total_page; //结束页面 $pageOffset = ($showPage - 1) / 2; if ($total_page > $showPage) { //若是总页面大于显示的页面 if ($page > $pageOffset + 1) { //若是当前页面大于偏移量 $page_banner .= "..."; } if ($page > $pageOffset) { //当前页大于偏移量 $start = $page - $pageOffset; $end = $total_page > $page + $pageOffset ? $page + $pageOffset : $total_page; } else { $start = 1; $end = $total_page > $showPage ? $showPage : $total_page; } if ($page + $pageOffset > $total_page) { $start = $start - ($page + $pageOffset - $end); } } for ($i = $start; $i <= $end; $i++) { if ($page == $i){ $page_banner .="<span class='current'>{$i}</span>"; }else{ $page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p={$i}" . "'>{$i}</a>"; } } //尾部省略 if ($total_page > $showPage && $total_page > $page + $pageOffset){ $page_banner .= "..."; } if ($page < $total_page) { $page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p=" . ($page + 1) . "'>下一页</a>"; $page_banner .= "<a href='" . "{$_SERVER['PHP_SELF']}?p={$total_page}" . "'>尾页</a>"; }else{ $page_banner .= "<span class='disable'>下一页</span>"; $page_banner .= "<span class='disable'>尾页</span>"; } $page_banner .= "总页数{$total_page},"; $page_banner .= "<form action='demo1.php' method='get'>"; $page_banner .= "到第<input type='text' size='2' name='p'>页"; $page_banner .= "<input type='submit' value='肯定'>"; $page_banner .= "</form></div>"; echo $page_banner; ?> </body> </html>
想要获取源文件的小伙伴能够关注冷月的微信公众号:学长冷月。回复:分页。冷月将会把整理好的文件发给您!微信
欢迎关注个人公众号:学长冷月,得到独家整理的学习资源和平常干货推送。
若是您对个人专题内容感兴趣,也能够关注个人博客:guoyu7.com学习