前几天冷月写了一篇博文《php基础编程-php连接mysql数据库-mysqli的简单使用》,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例
首先,我们来看一下效果:
这个案例其实很简单,那么,我们如何确定当前页所需要的数据是哪些呢?主要用到的核心sql语句就是:
SELECT * FROM 表名 LIMIT 起始位置,显示条数
我们应该在url后面采用GET的方式传递一个page的参数,比如:
http:// page.php?p=1
然后用$_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 "";echo "";echo "IDname";while ($row = mysqli_fetch_assoc($result)) { echo "{$row['id']}{$row['name']}";}echo "
";//释放结果,关闭连接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 = '
'
;if ($page > 1) { $page_banner .= "首页"; $page_banner .= "上一页";}else{ $page_banner .= "首页"; $page_banner .= "上一页";}//初始化数据$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 .="{$i}"; }else{ $page_banner .= "{$i}"; }}//尾部省略if ($total_page > $showPage && $total_page > $page + $pageOffset){ $page_banner .= "...";}if ($page < $total_page) { $page_banner .= "下一页"; $page_banner .= "尾页";}else{ $page_banner .= "下一页"; $page_banner .= "尾页";}$page_banner .= "总页数{$total_page},";$page_banner .= ";$page_banner .= "到第页";$page_banner .= "";$page_banner .= "";echo $page_banner;?></body></html>想要获取源文件的小伙伴可以关注冷月的微信公众号:学长冷月。回复:分页。冷月将会把整理好的文件发给您!
欢迎关注我的公众号:学长冷月,获得独家整理的学习资源和日常干货推送。
如果您对我的专题内容感兴趣,也可以关注我的博客:guoyu7.com