分页查询
1. 分页查询
select * from tableName limit [start,] count;
- start: 表示起始时的记录位置 ,默认从0开始计算,(可以省略,起始位置 为0)
- count: 表示获取数据的条数
2. 起始位置计算
start = (page - 1) * count
3. 总页数计算
allPage = ceil(allRow / pageSize);
所有记录条数 / 页面显示条数 后通过 ceil进行向上取整
4. 数学计算函数
ceil 向上进一取整
ceil(float $value): float
floor 舍去取整
floor(float $value): float
round 四舍五入取整
round(float $val, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float
<?phpvar_dump(round(3.4));var_dump(round(3.5));var_dump(round(3.6));var_dump(round(3.6, 0));var_dump(round(5.045, 2));var_dump(round(5.055, 2));var_dump(round(345, -2));var_dump(round(345, -3));var_dump(round(678, -2));var_dump(round(678, -3));?>
2. 案例讲解(班级数据分页显示)
<?php// 连接数据库$url = "mysql:host=mysql;dbname=database_lesson_30511_14_11204";$user = "lesson_30511_14_11204";$passwd = "c6e5d1f2cd01ae3ac950a5745ea6fbdf";$pdo = new PDO($url,$user,$passwd);// 相关变量$page = 1; // 当前页码$pageSize = 7; // 当前每页显示记录数$start = 0; // 获取分页数据时的起始位置$allNum = 0; // 表中所有的记录数$allPage = 0; // 表中所有的页数// 获取所有的记录数$sql = "select count(*) from class;";$st = $pdo->query($sql);// 保存所有的记录数$allNum = $st->fetch()[0];// 根据所有记录数和每页显示记录数,计算出所有页数$allPage = ceil($allNum/$pageSize);// 通过查询参数,获取当前页码if(isset($_GET['p'])){$page = $_GET['p'];}// 通过页码云计算起始查询位置,进进行获取数据$start = ($page-1)*$pageSize;$sql = "select * from class limit {$start}, {$pageSize}";$st = $pdo->query($sql);$res = $st->fetchAll(PDO::FETCH_ASSOC);?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#content{width:1200px;text-align: center;margin:0 auto;background: cyan;}#btn{width:1200px;list-style: none;display: flex;justify-content: center;}#btn>li{border: 1px solid blue;border-radius:10px;width:100px;margin:0 50px;}a{text-decoration: none;}</style></head><body><div id="content"><div id='title'><h1>班级信息显示</h1></div><div id='table'><table border="1" align='center' width="1000" ><tr background="#ccc"><th>班级名称</th><th>班主任</th><th>班级人数</th><th>班主任电话</th></tr><!--对查询数据进行显示--><?php foreach($res as $val){ ?><tr><td> <?php echo $val["name"]; ?></td><td> <?php echo $val["teacher_name"]; ?></td><td> <?php echo $val["number"]; ?></td><td> <?php echo $val["phone"]; ?></td></tr><?php } ?></table></div><!--控制按钮--><div id='ctl'><ul id='btn'><li><!--如果是到首页,固定页码为1--><a href="<?php echo "index.php?p=1"; ?>">首页</a></li><li><!--如果当前页面不是第一页,则可以进行页面减一,跳到上一次,否则一直为第一页--><a href="<?phpif($page != 1){echo "index.php?p=" . ($page - 1);}else{echo "index.php?p=1";}?>">上一页</a></li><li><!--如果当前页面不是第一页,则可以进行页面加一,跳到下一次,否则一直为末页--><a href="<?phpif($page != $allPage){echo "index.php?p=" . ($page + 1);}else{echo "index.php?p=" . $allPage;}?>">下一页</a></li><li><!-- 固定页码为最后一页--><a href="<?php echo "index.php?p=" . $allPage;?>">末页</a></li></ul></div></div></body></html>
