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 相关文章推荐
杏林同学录(二)
Oct 09 PHP
php array_slice函数的使用以及参数详解
Aug 30 PHP
基于php-fpm的配置详解
Jun 03 PHP
PHP修改session_id示例代码
Jan 08 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
10个超级有用的PHP代码片段果断收藏
Sep 23 PHP
php array_keys 返回数组的键名
Oct 25 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
Laravel第三方包报class not found的解决方法
Oct 13 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调用Java对象的方法
2006/10/09 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
php实用代码片段整理
2016/11/12 PHP
php实现websocket实时消息推送
2018/03/30 PHP
php中的依赖注入实例详解
2019/08/14 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
nodejs脚本centos开机启动实操方法
2020/03/04 NodeJs
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
python集合的新增元素方法整理
2020/12/07 Python
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
法律专业自我鉴定
2013/10/03 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
党员创先争优承诺书
2014/03/26 职场文书
五四演讲稿范文
2014/09/03 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
房贷收入证明范本
2015/06/12 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
element tree树形组件回显数据问题解决
2022/08/14 Javascript