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 设置sessionid生成机制(PHP Cli 模式设置进程名称的方法)
- php验证码图解(php/JS实现的生成随机密码验证码功能示例)
- 如何用wampserver打开自己写的php(WampServer下安装多个版本的PHP、mysql、apache图文教程)
- php 静态方法(PHP的静态方法与普通方法用法实例分析)
- php获取网页内容的几种方法(PHP实现的文件浏览器功能简单示例)
- php消息队列redis(redis+php实现微博二发布与关注功能详解)
- webapp前端能用yii2开发吗(Yii Framework框架使用PHPExcel组件的方法示例)
- phpstudy修改为什么进不去(phpstudy2018升级后站点及phpmyadmin打开404解决方案)
- phpstudy的mysql无法启动(Windows系统下解决PhPStudy MySQL启动失败问题)
- 常见的php五大运行模式详解(php设计模式之职责链模式定义与用法经典示例)
- php开发pdo事务处理(Cpanel下Cron Jobs定时执行PHP的方法)
- php服务号openid(php获取微信openid方法总结)
- php 抽象类和接口(php抽象类和接口知识点整理总结)
- php数组写法(php文件操作之文件写入字符串、数组的方法分析)
- php连接数据库拒绝使用域名(访问php时提示内存位置访问无效的解决办法和思路分析)
- php类的属性和方法(PHP进阶学习之反射基本概念与用法分析)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)
- 中华第一楷 张瑞龄 86岁高龄,苦练楷书71年,一幅字卖593万(中华第一楷张瑞龄)
- 冯骥才 年意(冯骥才年意)
- ()
热门推荐
- dedecms上传附件大小限制(dedecms删除文章同时也删除附件的修改方法)
- linuxcrontab怎么不执行(Linux crontab 命令的使用)
- 安装hbase1.1.2(Vmware + Ubuntu18.04 安装 Hbase 2.3.5的详细教程)
- ASP.NET中使用CodeDomProvider调用js文件中的js方法
- 云服务器搭建网站怎么选择合适(访问量过万的网站需要多大云服务器?)
- 面试问vue掌握程度如何回答(面试最常问的13种Vue修饰符)
- mysql8.0.15安装详细教程(Mysql8.0.22解压版安装教程小白专用)
- jQuery中$.each的用法
- sqlserver电脑休眠时断开连接(浅谈sqlserver下float的不确定性)
- python实现购物网站(Python实战购物车项目的实现参考)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9