博主信息
博文 60
粉丝 1
评论 1
访问量 76492
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP分页查询技术总结_9月10日
PHP学习
原创
1207人浏览过

1、总结分页的偏移量和查询原理。

    在数据库中可以分页查询数据。比如偏移量设置成5,就是从第六第数量开始查询。如果设置成10,就是从第十条数据开始查询。所以在计算偏移量的时候,可以利用从$_GET获取过来的参数,通过(页码-1)*显示数据的方面来获取偏移的数值。

实例

<?php
/**
 * 分页查询
 */

$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');

$page = isset($_GET['P']) ? $_GET['P'] : 1;  //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询

$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<table>
    <caption>员工表</caption>
    <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>邮箱</td>
        <td>年龄</td>
    </tr>
    <?php foreach ($srult as $srults): ?>
    <tr>
        <td><?php echo $srults['id']; ?></td>
        <td><?php echo $srults['name']; ?></td>
        <td><?php echo $srults['email']; ?></td>
        <td><?php echo $srults['age']; ?></td>
    </tr>
    <?php endforeach; ?>
    <a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
</table>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
/**
 * 分页查询
 */

$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');

$page = isset($_GET['P']) ? $_GET['P'] : 1;  //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询

$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<table>
    <caption>员工表</caption>
    <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>邮箱</td>
        <td>年龄</td>
    </tr>
    <?php foreach ($srult as $srults): ?>
    <tr>
        <td><?php echo $srults['id']; ?></td>
        <td><?php echo $srults['name']; ?></td>
        <td><?php echo $srults['email']; ?></td>
        <td><?php echo $srults['age']; ?></td>
    </tr>
    <?php endforeach; ?>
    <a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
</table>
<form>
    第
    <select name="P" id="1">
<?php for ($i=1;$i<=$pages;$i++): ?>
        <option><?php echo $i; ?></option>
<?php endfor; ?>
    </select>
    页
    <button>提交</button>
</form>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
/**
 * 分页查询
 */

$pdo = new PDO('mysql:host=localhost;dbname=php','root','root');

$page = isset($_GET['P']) ? $_GET['P'] : 1;  //获取P的参数,因为get就是以P=*这样来传的,所以知道 P等于几就可以判断分页了
$pages = ($page-1)*5;//通过分析可以得出,(P-1)*5就是要查询的数据库表中的位置开始查询

$stmt = $pdo->prepare("SELECT * FROM `user` LIMIT {$pages},5");
$stmt->execute();
$srult = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("SELECT COUNT(*) FROM `user`");//查询所有数据库所有数据
$stmt->execute();
$rows = $stmt->fetchColumn(0);//获取返回的记录条数,从0开始算
$pages = ceil($rows / 5);//除以5就可以算出多少页,利用ceil来取整数
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<table>
    <caption>员工表</caption>
    <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>邮箱</td>
        <td>年龄</td>
    </tr>
    <?php foreach ($srult as $srults): ?>
    <tr>
        <td><?php echo $srults['id']; ?></td>
        <td><?php echo $srults['name']; ?></td>
        <td><?php echo $srults['email']; ?></td>
        <td><?php echo $srults['age']; ?></td>
    </tr>
    <?php endforeach; ?>
    <?php if ($page != 1): ?>
    <a href="http://127.0.0.1/page/demo1.php?P=1">首页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page-1)==0) ? 1 : ($page-1); ?>"">上一页</a>
<?php endif; ?>
    <?php for ($i=1;$i<=$pages;$i++): ?>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo $i; ?>"><?php echo $i; ?></a>
    <?php endfor; ?>



<?php if ($pages != $page): ?>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo (($page+1)>$pages) ? $pages : ($page+1); ?>"">下一页</a>
    <a href="http://127.0.0.1/page/demo1.php?P=<?php echo $pages; ?>">尾页</a>
    <?php endif; ?>
</table>
<form>
    第
    <select name="P" id="1">
<?php for ($i=1;$i<=$pages;$i++): ?>
        <option><?php echo $i; ?></option>
<?php endfor; ?>
    </select>
    页
    <button>提交</button>
</form>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学