PHP函数实现分页含文本分页和数字分页


Posted in PHP onOctober 23, 2014

最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。

// 分页分装
/**
* $pageType 分页类型 1是数字分页 2是文本分页
* 可以将$pageTotal,$page,$total等数据作为参数传递,或者在paging作为全局变量(推荐)
*/
function paging($pageType)
{
global $pageTotal,$page,$total;
if($pageType == 1)
{
echo '<div id="pagenum">';
echo'<ul>';
for($i=0; $i < $pageTotal; $i++)
{ 
if($page == ($i+1))
{
echo '<li><a href="blogfriends.php?page='.($i+1).'" class="selected">'.($i+1).'</a></li>';
}
else
{
echo '<li><a href="blogfriends.php?page='.($i+1).'">'.($i+1).'</a></li>';
}
}
echo'</ul>';
echo'</div>';

}
else if($pageType == 2)
{
echo '<div id="pagetext">';
echo '<ul>';
echo '<li>'.$page.'/'.$pageTotal.'页 | </li>';
echo '<li>共有<strong>'.$total .'</strong>个会员 | </li>';
// 第一页
if($page == 1)
{
echo '<li>首页 | </li>';
echo '<li>上一页 | </li>';
}
else
{
// $_SERVER["SCRIPT_NAME"]获取当前的脚本名字,方便移植
// 也可以自定义常量,常量值和脚本文件名一致
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页 </a>| </li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page - 1).'">上一页 </a>| </li>';
}
// 最后一页
if($page == $pageTotal)
{
echo '<li>下一页 | </li>';
echo '<li>尾页 | </li>';
}
else
{
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page + 1).'">下一页 </a>| </li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($pageTotal).'">尾页 </a>| </li>';
} 
echo '</ul>';
echo '</div>';
}
}

参数解释:

$pageTotal是总页数,$page是当前页,$total是从数据库中获取的数据总数;

为了简化,将参数全部封装

// 分页参数分装
/**
* $sql 可以 获取数据总数的一个sql语句
* $size 每一页显示条数
*/
function pageParam($sql,$size)
{
// 将所有涉及的参数设置全局变量
// $pagestart 某一页从哪里开始
// $total 总记录数 $page 某一页 $pageTotal 总页数
global $pagestart,$pagesize,$total,$page,$pageTotal;
$pagesize = $size;
// 获取数据总数
$total = mysql_num_rows(queryDB($sql));

// 错误处理,先判断是否存在
if(isset($_GET['page']))
{
// 具体某一页
$page = $_GET['page'];
// 判断是否为空(0是空)/小于0/是否是数字
if(empty($page) || $page < 0 || !is_numeric($page))
{
$page = 1;
}
else
{
$page = intval($page); //取整,防止小数出现
}

}
else
{
// 初始化显示第1页
$page = 1;
}

// 数据库清零
if($total == 0)
{
// 设置为1
$pageTotal = 1;
}
else
{
// 分页的总页数(进一取整处理)
$pageTotal = ceil($total / $pagesize);
}

// 页数大于总页码$total
if($page > $pageTotal)
{
$page = $pageTotal;
}
// 当页从某一条记录开始
$pagestart = ($page - 1) * $pagesize;
}

参数解释:

$pagestart是当页从某一条记录开始,$pagesize是每页显示的记录数

在使用中,先调用pageParam,再调用paging

/**
* 第一个 可以 获取数据总数的一个sql语句
* 第二个 每一页显示条数
*/
pageParam("select userid from user",2);

<?php 
// 分页类型 1是数字分页 2是文本分页
paging(2);
?>

调用的位置根据具体情况选择,文本分页如下:

<?php 
// 分页类型 1是数字分页 2是文本分页
paging(1);
?>

数字分页如下:

PHP函数实现分页含文本分页和数字分页

样式自行调整。

PHP 相关文章推荐
php 魔术函数使用说明
Feb 21 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
利用ajax+php实现商品价格计算
Mar 31 PHP
10个实用的PHP正则表达式汇总
Oct 23 #PHP
PHP中怎样防止SQL注入分析
Oct 23 #PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 #PHP
常用PHP框架功能对照表
Oct 23 #PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 #PHP
php中字符串和正则表达式详解
Oct 23 #PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 #PHP
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP 中常量的知识整理
2017/04/14 PHP
json简单介绍
2008/06/10 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
JS的数组迭代方法
2015/02/05 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
python中的一些类型转换函数小结
2013/02/10 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
学生爱国演讲稿
2014/01/14 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
介绍信的格式
2015/01/30 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
寒假致家长的一封信
2015/10/10 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript