Blogger Information
Blog 24
fans 0
comment 0
visits 16301
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
分面查询原理与类封装-2018年9月10日
鱼越龙门的博客
Original
742 people have browsed it

今天学习了分面查询原理与类封装的知识。

分页查询的原理与偏移量的计算方法

 1. LIMIT 参数的作用: 偏移量与显示数量

2. 如果控制每页显示的数量

3. 接收GET参数,用p表示当前页数,每页显示3条

4. 需要的参数:

偏移量的计算方法

 当前偏移量的计算公式: (页数-1)*每页显示的数量

* offset = (page-1)*num

代码

实例

<?php
$pdo=new PDO("mysql:host=127.0.0.1;dbname=php","root","root");
$page=isset($_GET['p'])?$_GET['p']:1;
$offset=($page-1)*5;
$sql="select * from staff limit {$offset},5";
$stmt=$pdo->prepare($sql);
$stmt->execute();
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);
//var_dump($rows);
$stmt=$pdo->prepare("select count(*) from staff");
$stmt->execute();
$totals=$stmt->fetchColumn(0);
$pages=ceil($totals/5);
?>
<!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>分页查询</title>
    <style>
        table,th,td{
            border: 1px solid black;
        }
        table{
            border-collapse: collapse;
            width: 60%;
            margin: 30px auto;
            text-align: center;
        }
        th{
            background-color: aquamarine;
            margin-bottom: 15px;
        }
        caption{
            font-size: 1.5rem;
            margin-bottom: 15px;
        }
        h3{
            text-align: center;
        }
        h3 a{
            text-decoration-line: none;
            display: inline-block;
            height: 30px;
            min-width: 30px;
            border: 1px solid black;
            background-color: aqua;
            color: black;
            padding: 0 10px;
        }
        a:hover{
            background-color: red;
            color:white;
        }
        form{
            display: inline;
        }
    </style>
</head>
<body>
<table>
    <caption>员工信息表</caption>
    <tr>
        <th>staff_id</th>
        <th>name</th>
        <th>sex</th>
        <th>age</th>
        <th>salary</th>
    </tr>
    <?php foreach ($rows as $row):?>
        <tr>
            <td><?php echo $row['staff_id'];?></td>
            <td><?php echo $row['name'];?></td>
            <td><?php echo $row['sex']?'女':'男';?></td>
            <td><?php echo $row['age'];?></td>
            <td><?php echo $row['salary'];?></td>
        </tr>
    <?php endforeach;?>
</table>
<h3><a href="http://php.io/15/demo4.php?p=1">首页</a>
    <a href="http://php.io/15/demo4.php?p=<?php echo ($page-1==0)?1:($page-1)  ;?>">上一页</a>
    <?php for($i=1;$i<$pages;$i++):?>
        <a href="http://php.io/15/demo4.php?p=<?php echo $i;?>" <?php echo ($i==$page)?"style=background-color:red":'';?>><?php echo $i;?></a>
    <?php endfor;?>
    <a href="http://php.io/15/demo4.php?p=<?php echo ($page+1>$pages)?$pages:($page+1);?>">下一页</a>
    <a href="http://php.io/15/demo4.php?p=<?php echo $pages;?>">尾页</a>
    <form action="" method="get">
        <select name="p" id="">
            <?php for($i=1;$i<$pages;$i++):;?>
            <option value="<?php echo $i;?>"<?php if($i==$page){
                echo 'selected';
            }?>><?php echo $i;?></option>
            <?php endfor;?>
        </select>
        <button>提交</button>
    </form>
</h3>
</body>
</html>

运行实例 »

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


Correction status:qualified

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