Blogger Information
Blog 34
fans 0
comment 1
visits 23375
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0910作业:实战分页查询
Samoye
Original
557 people have browsed it

作业: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>

运行实例 »

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


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post