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中Date获取时间不正确怎么办
Jun 05 PHP
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
php google或baidu分页代码
Nov 26 PHP
php 函数使用方法与函数定义方法
May 09 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
PHP中date与gmdate的区别及默认时区设置
May 12 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
php防止sql注入的方法详解
Feb 20 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
YII框架http缓存操作示例
Apr 29 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 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
php之CodeIgniter学习笔记
2013/06/17 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
php适配器模式简单应用示例
2019/10/23 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
Swiper实现轮播图效果
2017/07/03 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
一些Unix笔试题和面试题
2012/09/25 面试题
公证委托书格式
2014/09/13 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
试用期自我评价范文
2015/03/10 职场文书
医学会议开幕词
2016/03/03 职场文书
导游词书写之黄山
2019/08/06 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle
mysql全面解析json/数组
2022/07/07 MySQL