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 相关文章推荐
15种PHP Encoder的比较
Mar 06 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
一个PHP并发访问实例代码
Sep 06 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
重置版战役片段
2020/04/09 魔兽争霸
ThinkPHP写第一个模块应用
2012/02/20 PHP
php 启动报错如何解决
2014/01/17 PHP
php include类文件超时问题处理
2015/02/06 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
浅述python中深浅拷贝原理
2018/09/18 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
python 从list中随机取值的方法
2020/11/16 Python
Python 图片处理库exifread详解
2021/02/25 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
Linux的文件类型
2016/07/05 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
工艺工程师工作职责
2013/11/23 职场文书
网络技术专业推荐信
2014/02/20 职场文书
高考寄语大全
2014/04/08 职场文书
村容村貌整治方案
2014/05/21 职场文书
2014年团支部工作总结
2014/11/17 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
高质量“欢迎词”
2019/04/03 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书