mysql pdo分页类_PDO分页处理

/**

* 分页原理

* 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 '';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值