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



