博客列表 >员工信息表分页显示功能-2019年2月28日

员工信息表分页显示功能-2019年2月28日

的博客
的博客原创
2019年03月20日 21:55:531262浏览

分页显示的原理:

需要现获取数据表的行数,再套用公式 {(当前页数-1)*每页应该显示的行数}得出的偏移量,使用SELECT中的LIMIT关键字可以限制每次查询结果集中的记录数量 (LIMIT 偏移量, 显示数量: 偏移量(offset)就是记录的位置索引,从0开始, 与数组类似)

# 假设每页显示5条记录

# 第1页,offset从0开始

SELECT * FROM staff LIMIT 0, 5;

# 第2页,offset从5开始

SELECT * FROM staff LIMIT 5, 5;

# 第3页,offset从10开始

SELECT * FROM staff LIMIT 10, 5;

<?php
// 从数据库获取员工数据
$page = isset($_GET['p'])? $_GET['p'] : 1; //页数变量,如果为空则为1

$pagenum = isset($_GET['pn']) ? $_GET['pn'] : 5;//每页显示记录的变量,默认为5
//echo $_SERVER['PHP_SELF'];

$pdo = new PDO('mysql:host=127.0.0.1;dbname=php', 'root', 'root');
//获取记录总行数
$stmt = $pdo->prepare('SELECT COUNT(*) FROM `staff`');
$stmt->execute();
$total = $stmt->fetchColumn(0);
//获取页数
$pages = ceil($total/$pagenum); //ceil()向上取整函数
//计算偏移量
$offset = ($page - 1) * $pagenum;
$stmt = $pdo->prepare("SELECT * FROM `staff` WHERE `is_show`=1 LIMIT {$offset},{$pagenum}");
$stmt->execute();
$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
<p>
    <?php for ($index = 1;$index<=$pages;$index++):?>
        <a href="javascript:location.href='<?=$_SERVER['PHP_SELF']?>?p=<?=$index?>&pn=<?=$pagenum?>'" target="workspace"><?=$index?></a>
    <?php endfor;?>
</p>


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议