我们都知道php分页的实现,都需要配合数据库里面的数据, 才能够实现效果,在前面的文章中我们也给大家简单的说了一下,那么php+mysql到底是如何实现分页效果的呢,今天就带大家一起了解下!
mysql里将数据分页显示的语句是:limit 5,1。5表示检索开始位置,1表示显示1页
所以在php中要实现上一页,下一页就要传一个数据page给limit,就可以分页。
可以理解为三个步骤:
1) 连接数据库,在前端将数据显示出来 ;
2)从前端传page(页码值)给php,这里也要判断符合范围内的页码:就是不小于1,不大于总页数;
3)php获得页码,做出判断,进行相应-+操作,改变limit值。
ps:数据都是已经在数据库中建好的,这里php只负责连接。
首先要知道如何在前端显示数据库中的信息:
php文件:
//连接数据库: $link = mysqli_connect("localhost","root","123456","test") or die ("错误:连接数据库失败"); //一次为:服务器,用户名,密码,库名 mysqli_query($link,"set names 'utf8'"); //输出的编码方式,这句一定要有。 //连接表: $sql = "SELECT * FROM wordspace WHERE sa_id IS NOT NULL"; //mysql查询语句 $sqlcount = mysqli_query($link,$sql) or die ("查询失败"); //将其输出. $info = mysqli_fetch_ array($sqlcount); while($info){ $result[ ] = $info; //传值给一个数组 } mysqli_free_result($info); //查询完后要释放该表 mysqli_close($link); //关闭数据库
将刚才获取数据库的数组显示在前端。
<table border="1"> <tr> <td>id</td> <td>Price</td> <td>customer</td> </tr> <!---用php将数据显示--> <?php foreach($result as $val) {?> <tr> <td><?php echo $val['id'];?></td> <td><?php echo $val[Price'];?></td> <td><?php echo $val['customer'];?></td> </tr> <?php } ?> </table>
将表的数据显示出来以后,在此基础上实现分页。
添加上一页,下一页连接,在此要做一个判断,使得传过去的值符合要求:
<!--显示首页和上一页的条件--> <?php if($page > 1) {?> <a href="?page=1">首页</a> <a href="?page=<?php echo $prevpage;">上一页</a> <?php } ?> <!--显示下一页和尾页的条件--> <?php if($page < $ numpages) {?> <a href="?page=<?php echo $nextpage;?">下一页</a> <a href="?page=<?php echo $numpages;?>尾页 <?php } ?>
php中连接数据库的语言要改动下:
//获取总记录数: $sqls = "SELECT COUNT(*) as totalFROM wordspace where sa_id IS NOT NULL"; $sqlcount = mysqli_query($link,$sqls) od die("查询失败"); $pagecount = mysqli_fetch_array($sqlcount); $pagecount = $pagecount['total']; mysqli_free_result($sqlcount); //查询完记得释放空间 //获取页数,判断是否符合要求 $page = intval($_GET['page']); if($page <=0) {$page= 1;} elseif($page > $pagecount){ $page = $pagecount; } //定义每页显示的页数: $pageshow = 5; $pagesize = ($page-1) * $pageshow; //计算总页数: $numpages = ceil($pagecount/$pageshow); //向上取整; //连接要显示的数据库 $sql = "SELECT * FROM wordcpace where IS NOT NULL limit $pagesize,$pageshow"; $sqlinfo = mysqli_query($sql); $pide = mysqli_fetch_array($sqlinfo)or die("分页查询失败"); while($pide){ $result[ ] = $pide; }
$prevpage = $page - 1;
$nextpage = $page + 1;
mysqli_free_result($sqlinfo); musqli_close($link); //最后要关闭数据库
总结:
看完是不是觉得php分页很简单呢,就是先把数据从数据库提取出来展示,然后在进行传值,判断的一系列操作,当你掌握了要领,一切都不是难题,希望对你有所帮助!
相关推荐:
Atas ialah kandungan terperinci php与mysql实现分页的示例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!