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录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
php5新改动之短标记启用方法
Sep 11 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
php的数组与字符串的转换函数整理汇总
Jul 18 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
php类的定义与继承用法实例
Jul 07 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python判断数字是否是超级素数幂
2018/09/27 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
毕业生求职的求职信
2013/12/05 职场文书
成龙洗发水广告词
2014/03/14 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js