php语言实现分页基础学习
发布时间:2023-06-05 13:18:23 所属栏目:MySql教程 来源:
导读://初次实现分页功能的想法(当然了,是别人的想法,我只是记录了下来而已)
//1. 求出总条数 假如13条
//准备sql语句(查询出数据库bbs_user表数据的总条数)
$sql = "select count(*) as coun
//1. 求出总条数 假如13条
//准备sql语句(查询出数据库bbs_user表数据的总条数)
$sql = "select count(*) as coun
|
//初次实现分页功能的想法(当然了,是别人的想法,我只是记录了下来而已) //1. 求出总条数 假如13条 //准备sql语句(查询出数据库bbs_user表数据的总条数) $sql = "select count(*) as count from bbs_user"; //发送sql语句(接收过来查询到条数) $result = mysqli_query($conn,$sql); //处理结果集 $pageRes = MysqLi_fetch_assoc($result); //var_dump($pageRes); //$count把条数从结果集里取出(总条数) $count = $pageRes['count']; //2. 需求:每页只显示5条 $num = 5; //3. ceil(总条数/每页显示数) ceil是向上取整,就算剩一条也要单独占一页 (3页) $pageCount = ceil($count / $num); //分的页数 var_dump($pageCount) ;打印查一下 //4. 根据总页数求出偏移量(即下一页开始是第几条,下边推出的公式) $offset = ($page - 1) * $sum(5); //5. $page 可以设置默认值为 1 ,但是还没有值,所以我们可以给定一个初值 $page = 1; //6. 修改sql语句(此sql非 彼sql语句),使用limit限制(下边的推导) $sql = "select * from bbs_user limit " . $offect . ',' . $num; //其中limit后边必须跟空格,否则会出错 //可以运行看看出现什么效果 //7. 我们是不是还没有写上一页、下一页、首页以及尾页? <a href = "" >首页 <a href = "" >上一页 <a href = "" >下一页 <a href = "" >尾页 //8. 修改$page的初值 , 我们自动获取page的值 $page = $_GET['page']; //此时我们会发现竟然出错了 !空?怎么改? PHP、MYSQLI实现分页(初学者) //我们的初始目的是让$page的初值为 1 ,我们可以这样,加一个条件判断,如果空就为 1,否则就是得到的页数 $page = empty($_GET['page'])? 1 : $_GET['page'];//三目运算 //9. 我们先把链接给定首页和尾页(简单),再把上一页下一页写上 //首页就是主页面,即page=1 <a href = "testFenye.PHP?page = 1" >首页 //尾页就是总页数(可以想一下,总页数就是最后一页) <a href = "testFenye.PHP?page = <?PHP echo $pageCount; ?>" >尾页 //上一页我们先用一个$prev表示 <a href = "testFenye.PHP?page = <?PHP echo $prev; ?>">上一页 //下一页同上一页,用$next表示 <a href = "testFenye.PHP?page = <?PHP echo $next; ?>">下一页 //10. 写完了链接,但是$prev和$next我们还没有给值呢 //上一页的话就是$page - 1了 $prev = $page - 1 ; //那么下一页就是$page + 1了 $next = $page + 1 ; PHP、MYSQLI实现分页(初学者) //11. 因为$page的初值为 1 , (参考第 5 步或第 8 步), 所以$prev会到 0 , $next会是page+1,也就是我们点下一页page就会增加 1 ,我们可以加一个限制条件 if($prev < 1){ $prev = 1 ; } if($next > $pageCount){ $next = $pageount ; } select * from bbs_user limit 0 , 5 这是第一页 1 select * from bbs_user limit 5 , 5 这是第二页 2 select * from bbs_user limit 10 , 5 这是第三页 3 select * from bbs_user limit 15 , 5 这是第四页 4 推出来的公式 ($page - 1) * $sum (5) //$page是当前页数 这是我预先写好的查询页面,如下: <!DOCTYPE html> <html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>系统主页面</title> </head> <body> <?PHP $conn = MysqLi_connect("localhost","root",""); if(!$conn){ echo "失败"; } MysqLi_select_db($conn,"bbs"); $sql = "select * from bbs_user"; $obj = MysqLi_query($conn,$sql); echo "<center>"; echo "<table border = 1 cellspacing = '0' cellpadding = '10'>"; echo "<th>编号</th><th>姓名</th><th>密码</th><th>地址</th><th>性别</th><th>年龄</th><th>操作</th>"; while($row = MysqLi_fetch_assoc($obj)){ echo "<tr>"; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['username'].'</td>'; echo '<td>'.$row['password'].'</td>'; echo '<td>'.$row['address'].'</td>'; echo '<td>'.$row['sex'].'</td>'; echo '<td>'.$row['age'].'</td>'; echo '<td><a href = "del.PHP?id='.$row['id'].'">删除</a>/<a href = "update.PHP?id='.$row['id'].'">修改</a></td>'; echo "</tr>"; } echo "</table>"; echo "<a href = 'add.PHP'>添加</a>"; echo "<center>"; MysqLi_close($conn); ?> </body> </html> 最后的源代码: <!DOCTYPE html> <html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>系统主页面</title> </head> <body> <?PHP //5.设置$page的默认值 #$page = 1; //8.修改$page的值 $page = empty($_GET['page'])?1 : $_GET['page']; $conn = MysqLi_connect("localhost","root",""); if(!$conn){ echo "失败"; } MysqLi_select_db($conn,"bbs"); //------------分页开始------------------- //1.求出总条数 $sql = "select count(*) as count from bbs_user"; $result = MysqLi_query($conn,$sql); $pageRes = MysqLi_fetch_assoc($result); #var_dump($pageRes); //13 $count = $pageRes['count']; //2.每页显示数(5) $num = 5; //3.根据每页显示数求出总页数 $pageCount = ceil($count / $num); //向上取整 #var_dump($pageCount); //3 //4.根据总页数求出偏移量 $offset = ($page - 1) * $num; //$page默认为 1, 下一步设置 //------------分页结束------------------- //6.修改sql语句 $sql = "select * from bbs_user limit " . $offset . ',' . $num; #$sql = "select * from bbs_user"; $obj = MysqLi_query($conn,$sql); echo "<center>"; echo "<table border = 1 cellspacing = '0' cellpadding = '10'>"; echo "<th>编号</th><th>姓名</th><th>密码</th><th>地址</th><th>性别</th><th>年龄</th><th>操作</th>"; while($row = MysqLi_fetch_assoc($obj)){ echo "<tr>"; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['username'].'</td>'; echo '<td>'.$row['password'].'</td>'; echo '<td>'.$row['address'].'</td>'; echo '<td>'.$row['sex'].'</td>'; echo '<td>'.$row['age'].'</td>'; echo '<td><a href = "del.PHP?id='.$row['id'].'">删除</a>/<a href = "update.PHP?id='.$row['id'].'">修改</a></td>'; echo "</tr>"; } echo "</table>"; #echo "<a href = 'add.PHP'>添加</a>"; echo "<center>"; //10.设置上一页下一页的$prev和$next $prev = $page - 1; $next = $page + 1; //11.设置页数限制 if($prev<1){ $prev = 1; } if($next>$pageCount){ $next = $pageCount; } //关闭连接 MysqLi_close($conn); ?> <!--7.添加首页、上一页、下一页、尾页(href没有链接)--> <!--9.给定链接,首页和尾页写死,首页就是page=1,尾页是总页数,上一页先用$prev表示,下一步设置,下一页同上一页--> <a href="testFenye.PHP?page=1">首页</a> <a href="testFenye.PHP?page=<?PHP echo $prev;?>">上一页</a> <!--混编简写--> <a href="testFenye.PHP?page=<?=$next;?>">下一页</a> <a href="testFenye.PHP?page=<?=$pageCount;?>">尾页</a> </body> </html> (编辑:驾考网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
