php分页函数有什么用(php实现分页功能的详细实例方法)
php分页函数有什么用
php实现分页功能的详细实例方法分页效果在网页中是常见的,可是怎样才能实现分页呢,今天做了两种方法来实现一下分页的效果。
首先,我们需要准备在数据库里面准备一个表,并且插入数据,这些都是必需的前提工作了,不多说,如图所示(库名为jereh,表名为n_content):
步骤分析:
我们需要分页的话,需要用到 "select * from tableName limit num1,num2”;这是一个限定查询的语句,后面跟两个参数,num1为从第几个开始查找,num2为查找的信息的个数,如我想查找2,3,4这三条数据,如下图所示:
好了,我们开始说步骤:
1、建立一个函数,用来实现限制查询的功能
首先我们来想一下,实现这个功能我们首先要知道当前的页数和要限制的一个页面显示几条信息,这个可以用形参传过来。那么,
我们设置pageNum为页数,pageSize为一个页面显示几条数据,在 "select * from tableName limit num1,num2”这个查询语句中,
num1就是(pageNum-1)*pageSize,num2就是pageSize,明白了这个关系之后,那么就好办了,代码在下面:
|
//分页的函数 function news( $pageNum = 1, $pageSize = 3) { $array = array (); $coon = mysqli_connect( "localhost" , "root" ); mysqli_select_db( $coon , "jereh" ); mysqli_set_charset( $coon , "utf8" ); // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度 $rs = "select * from n_content limit " . (( $pageNum - 1) * $pageSize ) . "," . $pageSize ; $r = mysqli_query( $coon , $rs ); while ( $obj = mysqli_fetch_object( $r )) { $array [] = $obj ; } mysqli_close( $coon , "jereh" ); return $array ; } |
上面的代码中,值得注意的是,limit后面一定要加一个空格,不然会出错误。
2、建立第二个函数,用来显示总页数的函数
这个没什么新的知识点,都是以前写过的知识点了,直接看代码吧。
|
//显示总页数的函数 function allNews() { $coon = mysqli_connect( "localhost" , "root" ); mysqli_select_db( $coon , "jereh" ); mysqli_set_charset( $coon , "utf8" ); $rs = "select count(*) num from n_content" ; //可以显示出总页数 $r = mysqli_query( $coon , $rs ); $obj = mysqli_fetch_object( $r ); mysqli_close( $coon , "jereh" ); return $obj ->num; } |
3、调用这两个函数,进行初步的处理
我们想做下一页、下一页的结果,需要用到get方法在本页面传数据,那么我们在刷新页面的时候,肯定get是得不到数据的,所以需要用三目运算了。
|
<?php @ $allNum = allNews(); @ $pageSize = 3; //约定每页显示的信息条数 @ $pageNum = empty ( $_GET [ "pageNum" ])?1: $_GET [ "pageNum" ]; @ $endPage = ceil ( $allNum / $pageSize ); //总页数 @ $array = news( $pageNum , $pageSize ); ?> |
4、在页面进行显示
在页面显示的话,需要用到了foreach循环了,代码简单,看下面:
|
<table border= "1" style= "text-align: center" cellpadding= "0" > <tr> <td>编号</td> <td>新闻标题</td> <td>来源</td> <td>点击率</td> <td>发布日期</td> </tr> <?php foreach ( $array as $key => $values ){ echo "<tr>" ; echo "<td>{$values->id}</td>" ; echo "<td>{$values->title}</td>" ; echo "<td>{$values->src}</td>" ; echo "<td>{$values->indexs}</td>" ; echo "<td>{$values->times}</td>" ; echo "</tr>" ; } ?> </table> |
5、实现上一页,下一页的效果
要实现页面跳转的效果,我们需要用到了a标签的href属性,地址写“?pageNum = ...”这个pageNum是我们自己定义的,由于是get来传递的,在上一步里面我们已经用$_GET接受了参数,所以我们只需要进行get的参数传递就可以了;
首页:“pageNum=1”;
上一页:"pageNum=<?php echo $pageNum==1?1:$pageNum-1?>"
下一页:"pageNum=<?php echo $pageNum==$endPage ?$endPage :$pageNum+1?>"
尾页:“pageNum=<?php echo $pageNum =$endPage?>”;
特别注意的是,”pageNum=”的时候后面千万千万不要空格,代码如下:
|
<a href= "?pageNum=1" rel= "external nofollow" rel= "external nofollow" >首页</a> <a href= "?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel= "external nofollow" rel= "external nofollow" >上一页</a> <a href= "?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel= "external nofollow" rel= "external nofollow" >下一页</a> <a href= "?pageNum=<?php echo $endPage?>" rel= "external nofollow" rel= "external nofollow" >尾页</a> |
代码如下:
|
<!DOCTYPE html> <html> <head> <meta charset= "UTF-8" > <title>分页</title> <?php //分页的函数 function news( $pageNum = 1, $pageSize = 3) { $array = array (); $coon = mysqli_connect( "localhost" , "root" ); mysqli_select_db( $coon , "jereh" ); mysqli_set_charset( $coon , "utf8" ); // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度 $rs = "select * from n_content limit " . (( $pageNum - 1) * $pageSize ) . "," . $pageSize ; $r = mysqli_query( $coon , $rs ); while ( $obj = mysqli_fetch_object( $r )) { $array [] = $obj ; } mysqli_close( $coon , "jereh" ); return $array ; } //显示总页数的函数 function allNews() { $coon = mysqli_connect( "localhost" , "root" ); mysqli_select_db( $coon , "jereh" ); mysqli_set_charset( $coon , "utf8" ); $rs = "select count(*) num from n_content" ; //可以显示出总页数 $r = mysqli_query( $coon , $rs ); $obj = mysqli_fetch_object( $r ); mysqli_close( $coon , "jereh" ); return $obj ->num; } @ $allNum = allNews(); @ $pageSize = 3; //约定没页显示几条信息 @ $pageNum = empty ( $_GET [ "pageNum" ])?1: $_GET [ "pageNum" ]; @ $endPage = ceil ( $allNum / $pageSize ); //总页数 @ $array = news( $pageNum , $pageSize ); ?> </head> <body> <table border= "1" style= "text-align: center" cellpadding= "0" > <tr> <td>编号</td> <td>新闻标题</td> <td>来源</td> <td>点击率</td> <td>发布日期</td> </tr> <?php foreach ( $array as $key => $values ){ echo "<tr>" ; echo "<td>{$values->id}</td>" ; echo "<td>{$values->title}</td>" ; echo "<td>{$values->src}</td>" ; echo "<td>{$values->indexs}</td>" ; echo "<td>{$values->times}</td>" ; echo "</tr>" ; } ?> </table> <li> <a href= "?pageNum=1" rel= "external nofollow" rel= "external nofollow" >首页</a> <a href= "?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>" rel= "external nofollow" rel= "external nofollow" >上一页</a> <a href= "?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>" rel= "external nofollow" rel= "external nofollow" >下一页</a> <a href= "?pageNum=<?php echo $endPage?>" rel= "external nofollow" rel= "external nofollow" >尾页</a> </li> </body> </html> |
以上就是php如何实现分页功能的详细内容,感谢大家的学习和对开心学习网的支持。
- windows搭建php环境(windows 2008r2+php5.6.28环境搭建详细过程)
- mac电脑安装php环境(Mac下搭建php开发环境教程)
- thinkphp框架多文件上传完整代码(Thinkphp5 自定义上传文件名的实现方法)
- php重定向网页(phpStudy V8设置301重定向跳转的实现方法)
- php 处理html表单(PHP使用HTML5 FormData对象提交表单操作示例)
- php中function函数的用法(PHP中quotemeta函数的用法讲解)
- phpredis常用方法(PHP针对redis常用操作实例详解)
- phpstudy安装步骤(phpStudy学习之php探针)
- php中trim函数(PHP中ltrim函数的用法与实例讲解)
- php开发模式有哪些(PHP设计模式之简单工厂和工厂模式实例分析)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- phpstudy怎么修改mysql版本(PhpStudy集成环境升级MySQL数据库版本的方法)
- php 上传临时文件扩展名(浅析PHP 中move_uploaded_file 上传中文文件名失败)
- thinkphp实战教程之博客技术学习(python3编写ThinkPHP命令执行Getshell的方法)
- thinkphp5设计权限(Thinkphp5.0 框架视图view的比较标签用法分析)
- thinkphp快速入门手册(从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解)
- 四川旅游攻略(四川旅游攻略自由行攻略)
- 上海迪士尼攻略(上海迪士尼攻略旅游)
- 哪里可以看熊猫(成都哪里可以看熊猫)
- oppo手机的三种录屏方法,你知道有哪些吗(oppo手机的三种录屏方法)
- 吉林神秘传染链跨省 传染源尚未找到,舒兰 封城(吉林神秘传染链跨省)
- 吉林舒兰 封城 聚集性疫情传播链已延至沈阳,有一个细节让人忧心(吉林舒兰封城)
热门推荐
- windows2003ftp配置(轻松架设Windows 2003用户隔离FTP站点的注意事项)
- jqueryajax实现部分刷新(php+jQuery ajax实现的实时刷新显示数据功能示例)
- mysql日期用法(MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔)
- php面向对象编程代码(php面向对象程序设计入门教程)
- dedecms命名规则(DEDECMS织梦文章文档属性增加推荐特荐图标)
- laravel 用户登录认证(Laravel5.5 实现后台管理登录的方法自定义用户表登录)
- vue单元测试实例(Vue-Jest 自动化测试基础配置详解)
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- 为什么mysql主键要设置自增列(浅谈MySQL中的自增主键用完了怎么办)
- 阿里云ecs 更换操作系统(为什么禁用阿里云ECS的内网后不能使用云监控?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9