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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
php 截取中英文混合字符串的方法
May 31 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
Aug 24 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中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
深入浅析php json 格式控制
2015/12/24 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
基于JS实现数字动态变化显示效果附源码
2019/07/18 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
Python中map和列表推导效率比较实例分析
2015/06/17 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python如何实现的二分查找算法
2020/05/27 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
摄影实习自我鉴定
2013/09/20 职场文书
房地产管理毕业生自荐信
2013/11/04 职场文书
施工人员岗位职责
2013/12/12 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
2016年情人节问候语
2015/11/11 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
《花钟》教学反思
2016/02/17 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python