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如何实现分页功能的详细内容,感谢大家的学习和对开心学习网的支持。
- php安全攻防(phpstudy linux小皮面板怎么防cc攻击)
- thinkphp5单例原理(Thinkphp5框架简单实现钩子Hook行为的方法示例)
- php如何对文本框输入小数的小数点(PHP保留两位小数的几种方法)
- php技术优点和缺点(php的优点总结 php有哪些优点)
- phpstudy创建网站教程(使用phpstudy中域名管理菜单创建本地站点图文)
- thinkphp返回json(thinkphp5框架实现数据库读取的数据转换成json格式示例)
- thinkphp5访问路径(thinkphp5修改view到根目录实例方法)
- 用php实现弹出消息提示框(php弹出提示框的是实例写法)
- php换行乱码(php输出文字乱码的解决方法)
- 宝塔面板与php(宝塔面板如何安装PHP扩展)
- phpinclude的使用方法(PHP defined函数的使用图文详解)
- php解读三重境界(PHP 观察者模式深入理解与应用分析)
- php构成方法的关键字是(PHP中的self关键字详解)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- phpstudy安装教程详解学习(phpstudy下载安装简明图文教程)
- thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
热门推荐
- css3语法结构(CSS3中的注音对齐属性ruby-align用法指南)
- php实现session入库实例(PHP使用Session实现上传进度功能详解)
- JS文件智能提示另一个JS文件中的成员
- dedecms SQL语句教程(dedecms各种数字统计SQL语句 包括评论条数,总文档数等等[附修修改版本])
- mysql删库操作记录(mysql常用sql与命令之从入门到删库跑路)
- python成绩判断系统(Python根据成绩分析系统浅析)
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- typedef和var有什么不同(TypeScrip中泛型的案例详解)
- vue中的指令及用法(详解Vue进阶构造属性)
- 网站压力测试工具
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9