/**
* 分页原理
* LIMIT子名参数:第一个是显示的起始位置:偏移量,第二参数是当前显示的记录数量
* 第一页:0 。显示5条 从第0个位置开始显示
* 第二页:5,显示5条 从第五个位置开始显示五条记录
* 以此类推。。
* $page当前页数 $num = 当前显示的记录数
* $offset = ($page-1)*$num 偏移量公式
*/
header('content-Type:text/html;charset=utf-8');
$page = isset($_GET['p']) ? $_GET['p'] : 1; //当前页码
$page = ($page==0) ? 1: $page;//判断当前页码是否等于0 如果等于0 让他等于1 不等于0 赋值给$page
$num = 5;//每页显示5条数据
$offset= ($page-1)*$num;//计算出当前第几页
//1用PDO预处理获取表中全部数据
$pdo = new PDO ('mysql:dbname=demo','root','root');
$sql = "SELECT * FROM `user1` LIMIT :offset,:num";
$pdoStmt = $pdo->prepare($sql);
$pdoStmt->bindParam(':offset',$offset,PDO::PARAM_INT);//绑定$offset值
$pdoStmt->bindParam(':num',$num,PDO::PARAM_INT);//绑定$num值
$pdoStmt->execute();
echo '
用户信息表
';echo '
echo '
ID用户名邮箱';foreach ($pdoStmt as $row) {
echo '
';echo '
'.$row['id'].''.$row['name'].''.$row['email'].'';echo '
';}
echo '
';//计算有多少页,第一步计算出表中有多少数据
$pdoStmt2 = $pdo->prepare("SELECT * FROM user1");
$pdoStmt2->execute();
//echo '表中有:'.$pdoStmt2->rowCount();//计算出数据条数
$totalPage = ceil($pdoStmt2->rowCount()/$num);//ceil:向上取整
$page = ($page == $totalPage) ? ($totalPage-1):$page;//判断当前页码值是否等于当前数据页条数
//创建分页条
echo '
';
echo '首页';
echo '
echo (($page-1)==0)?1:($page-1);
echo '">上一页
';for ($i=1;$i<=$totalPage;$i++) {
echo ' '.$i.'';
}
echo '下一页';
echo ' 尾页';
echo '';