博主信息
博文 34
粉丝 0
评论 1
访问量 29420
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0910作业:实战分页查询
Samoye
原创
754人浏览过

作业:1问答:分页查询的原理与偏移量的计算方法

实现分页主要是利用SQL中的limit的关键字,它有两个参数limit [offset] listNO.
第一个参数offset是偏移量,我称为查询的起始位置,第二参数listNO.是从起始位开始计算,显示在页面的数量
这样每次从新的起始位置开始,显示相同的数量就实现了分页。
起始位置计算的方法:(当前页的页码-1) * (要在每个页面显示的数量)

作业2:编程: 实现分页查询,要求有上一下,下一页,直接跳到首页和尾页,中间页的生成,以及快速页码跳转功能

实例

<?php
/**
 * 在手工分页的基础上,添加上一页,下一页,首页等快捷按钮
 */
$pdo= new PDO('mysql:host=localhost;dbname=stu','root','root');
//实现分页,先获得当前页码 这句代码太有意思了:可以自动设置一个变量(isset),如果url有current_page 变量就使用这个变量,没有则设置一个,并赋值为1
$pageno = isset($_GET['current_page'])?$_GET['current_page']:1;//如果在URL中有current_page,则使用当前页码赋值,没有则赋值1
//计算起始位置
$startset = ($pageno - 1)*4; //每页显示数量是4


$sql ="SELECT * FROM `student` LIMIT {$startset},4";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
//测试是否连接查询成功
//echo '<pre>'.print_r($result,true).'</pre>';

//为了实现尾页导航,必须获取总页数

$stmt = $pdo->prepare("select count(*) from student"); //统计记录数
$stmt->execute();
//获取首行首列的数据
$row_total = $stmt->fetchColumn(0);
$page_total = ceil($row_total/4); //向上取整,获得总页数



?>
<!--//把查询结果弄到表格里去-->
<!doctype html>
<html lang="zh_cn">
<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>手工分页查询</title>
    <style>
        table,th,td {
            border: 1px solid lightgray;
        }
        table {
            border-collapse:collapse;
            width:60%;
            margin: 30px auto;
            text-align: center;
        }
        table caption {
            font-size: 20px;
            margin-bottom: 15px;
        }
        table tr:first-child{
            background-color: lightblue;
        }
        h4 {
            text-align: center;
        }
        h4 a {
            text-decoration: none;//去掉链接的下划线
            margin-left: 15px;
            display: inline-block;
           /* border: 1px solid black;*/
           /* height: 35px;*/
           /* width: 40px;*/
            padding: 10px;
          /*background-color: lightgreen;*/
        }
        h4 a:hover{
            background-color: #666666;
            color:white;
        }
        form {
            display:inline;
        }
    </style>
</head>
<body>
<table>
    <caption>奖学金信息表</caption>
    <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>班级</th>
        <th>奖学金</th>
        <th>地址</th>
    </tr>
    <?php foreach ($result as $row): ?>
        <tr>
            <td><?php echo $row['id']?></td>
            <td><?php echo $row['name']?></td>
            <td><?php echo $row['sex']?></td>
            <td><?php echo $row['class']?></td>
            <td><?php echo $row['bursary']?></td>
            <td><?php echo $row['address']?></td>
        </tr>
    <?php endforeach; ?>
</table>
<h4>
    <a href="http://js.net/0910/page_select.php?current_page=1">首 页</a>
    <a href="http://js.net/0910/page_select.php?current_page=<?php echo ($pageno-1==0)?1:($pageno-1);?>">上一页</a>
    <!-- 生成中间页面-->
    <!-- 用循环生成中间页   -->
    <?php for ($i=1; $i<=$page_total; $i++): ?>
        <a href="http://js.net/0910/page_select.php?current_page=<?php echo $i ?>" <?php echo ($i==$pageno) ? 'style="font-size:30px;box-shadow:5px 5px 5px #888888;border-radius:100%;"':'';?> > <?php echo $i;?></a>
        <!--//添加个锁定聚焦  如果当前页和循环页面相等则添加个样式-->
    <?php endfor; ?>
    <a href="http://js.net/0910/page_select.php?current_page=<?php echo (($pageno+1)>$page_total)?$page_total:($pageno+1);?>">下一页</a>
    <a href="http://js.net/0910/page_select.php?current_page=<?php echo $page_total;?>">尾 页</a>

    <!--生成一个快选按钮-->

    <form action="" method="get">

       第 <select name="current_page" id=""> //把变量name 提交给当前页
            <?php for ($i=1;$i<=$page_total;$i++): ?>
                //把选择的值传递给当前页 组成current_page=$i 的页面
                <option value="<?php echo $i ?>"<?php
                if($pageno==$i){
                    echo 'selected'; //在页面上显示选定的页码显示
                }
                ?>><?php echo $i ?>
                </option>
            <?php endfor;?>
        </select>页
        <button>跳转</button>
    </form>
</h4>

</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+教程免费学