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下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
PHP 登录记住密码实现思路
May 07 PHP
php中的常用魔术方法总结
Aug 02 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
May 13 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
php数组遍历类与用法示例
May 24 PHP
PHP基于swoole多进程操作示例
Aug 12 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python中input和raw_input的一点区别
2014/10/21 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
OpenCV 模板匹配
2019/07/10 Python
Django stark组件使用及原理详解
2019/08/22 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
python字典按照value排序方法
2020/12/28 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
岗位职责范本
2013/11/23 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
旷工检讨书1000字
2015/01/01 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
详解非极大值抑制算法之Python实现
2021/06/28 Python
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
golang为什么要统一错误处理
2022/04/03 Golang