总结
豆包 AI 助手文章总结

PHP结合MySQL实现原生分页

韦小宝
发布: 2018-01-29 10:04:17
原创
2259人浏览过

在php开发中框架可见是运用的越来越广泛,框架用多了原生不练习渐渐的都会以往了,希望大家不要把基础的东西给以往哦!我们本篇文章讲的是php结合mysql实现原生分页,而现在一般的框架都封装了分页类,不需要大家手动写。不过闲来无事的时候可以尝试着写一下,锻炼一下编写代码能力。

PHP+MYSQL分页主要是根据SQL语句中的limit实现的。

limit语句:

select * from table limit `limit`,`offset`;
登录后复制

可以将其中的limit看做是分页的页数,offset看做是每页显示的条数。
实现效果如图:

@@H45V0@K4D0]BUOV5}T)S1.png

立即学习PHP免费学习笔记(深入)”;

这里只是一个实例代码,主要实现分页功能,页面效果等相关没有特意调试。

主要实现功能有:首页、尾页、上一页、下一页、统计总页数、定位当前页、数字显示,最大四个,其余用...表示。

具体代码实现:
这里是使用PDO操作的数据库

<?php
header("Content-type:text/html;charset=utf-8");
// 1、传入页码
 $page = $_GET['p'];

// 2、根据页码取出数据
$pdo = new PDO('mysql:host=localhost;dbname=ceshi','root','root');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

$sql = 'SELECT * FROM `goods` LIMIT :start,:offset';
$limit = ($page-1)*3;
$offset = 3;
$stmt = $pdo->prepare($sql);
$sqlnum = 'SELECT COUNT(*)FROM `goods`';
$stmtnum = $pdo->prepare($sqlnum);
$stmtnum->execute();
$num = $stmtnum->fetch(PDO::FETCH_ASSOC);
$stmt->bindParam(':start',$limit);
$stmt->bindParam(':offset',$offset);
if(!$stmt->execute()){
            throw new Exception('查找失败',1);
        }
 $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data);

// 3、显示数据+显示分页条
/**总页数**/
$end = floor($num['COUNT(*)']/$offset)+1;

$page_banner ='<a href="'.$_SERVER['PHP_SELF'].'?p=1">   首页</a>';
if($page <=1){
    $page_banner .= '<a style="color:#B8BBB3;">   上一页</a>';
}else{
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page -1).'">   上一页</a>';
}
if($page+3>4){
    $page_banner .= '...';
}
if(($page+4)>=$end){
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-3).'">   '.($end-3).'</a>';
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-2).'">   '.($end-2).'</a>';
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end-1).'">   '.($end-1).'</a>';
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($end).'">   '.($end).'</a>';
}else{
    for($i=0;$i<4;$i++){
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page+$i).'">   '.($page+$i).'</a>';
    }
}

if(($page+4)<$end){
    $page_banner .= '...';
}

if($page <=$num['COUNT(*)']/$offset){
    $page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.($page +1).'">    下一页</a>';
}else{
    $page_banner .='<a style="color:#B8BBB3;">   下一页</a>';
}

$page_banner .='<a href="'.$_SERVER['PHP_SELF'].'?p='.$end.'">     尾页</a>';

$page_banner .='<span>   总共'.$end.'页</span>   当前第<span>'.$page."页</span>";
echo $page_banner;
?>
登录后复制

大家可以在本地自己练习练习哦!不懂的更要多练习咯!这些原生基础的东西忘了到最后就很难再捡起来了!!

相关推荐:

php分页类的实现

今天就给大家分享一款好用好看的php分页类!

php分页的实现原理

今天就带大家来解析一下php分页的原理。

一款万能的php分页类实例代码

这篇文章主要介绍了万能的php分页类,特别好用,需要使用php分页类的朋友不要错过。

thinkphp分页实现效果

大量数据的显示就需要对内容进行分页,本文章就是就是介绍thinkphp分页进行整理,有需要的朋友一起来了解一下。

以上就是PHP结合MySQL实现原生分页的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号