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实战小实例(php实现推荐功能的简单实例)
- thinkphp怎么整合微信支付(ThinkPHP框架实现的微信支付接口开发完整示例)
- ubuntu安装php(在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法)
- iis6双php版本的设置(云主机IIS7.5支持PHP5.3以上版本和MYSQL)
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- php和java联系(PHP实现与java 通信的插件使用教程)
- php项目开发实例(php项目中类的自动加载实例讲解)
- php代码最可靠的加密方式(php DES加密算法实例分析)
- php验证码思路(PHP实现字母数字混合验证码功能)
- php数据类型图解(php使用filter_var函数判断邮箱,url,ip格式示例)
- php网页生成程序(php生成静态页面并实现预览功能)
- yii2支持php7.2吗(Yii框架通过请求组件处理get,post请求的方法分析)
- php怎么设置curl(php curl发送请求实例方法)
- php语法基础知识(PHP中16个高危函数整理)
- apache服务器对php的支持原理(php apache开启跨域模式过程详解)
- php中变量定义规则(php use和include区别总结)
- 感冒要吃什么药(猫咪感冒要吃什么药)
- 下雪会怎样(下雪怎样画)
- 白蓝色穿搭(白蓝色衣服配什么裤子)
- 天空是什么颜色(天空是什么颜色的英语)
- 高马尾扎发(高马尾扎发教程视频)
- 这里输入关键词(请手动输入关键词)
热门推荐
- python获取当前时间戳(Python基于datetime或time模块分别获取当前时间戳的方法实例)
- dedecms安全设置(织梦dedecms站点data目录位置变动调整验证码不显示的解决办法)
- django分页器图(Django框架实现分页显示内容的方法详解)
- php如何设置命名空间(PHP进阶学习之命名空间基本用法分析)
- php可以一次下载几个文件(php实现大文件断点续传下载实例代码)
- docker的解剖(再见 Docker如何5分钟转型 containerd)
- jenkins 构建docker镜像(docker搭建jenkins+maven代码构建部署平台)
- idea如何搭建tomcat(IDEA2020.1.2创建web项目配置Tomcat的详细教程)
- laravel 开发自定义组件(解决Laravel blade模板转义html标签的问题)
- python简单代码实例(Python实现 版本号对比功能的实例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9