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安装为Apache DSO
Oct 09 PHP
在php中使用sockets:从新闻组中获取文章
Oct 09 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 PHP
PHP计算加权平均数的方法
Jul 16 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
PHP中常用的魔术方法
Apr 28 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
php中对象引用和复制实例分析
Aug 14 PHP
tp5.1 实现setInc字段自动加1
Oct 18 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执行速度全攻略
2006/10/09 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
python fabric使用笔记
2015/05/09 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
python发送邮件实例分享
2017/07/28 Python
Python绘制3D图形
2018/05/03 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
python如何提升爬虫效率
2020/09/27 Python
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
总经理岗位职责
2013/11/09 职场文书
教师党员承诺书
2014/03/25 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
个人课题方案
2014/05/08 职场文书
综艺节目策划方案
2014/06/13 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
2014年公司工作总结
2014/11/22 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
使用Python拟合函数曲线
2022/04/14 Python
python 单机五子棋对战游戏
2022/04/28 Python