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 透明水印生成代码
Aug 27 PHP
php中stream(流)的用法
Mar 25 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
php调用KyotoTycoon简单实例
Apr 02 PHP
php超快高效率统计大文件行数
Jul 05 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 PHP
TP5框架页面跳转样式操作示例
Apr 05 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 在线翻译函数代码
2009/05/07 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
基于jquery的横向滚动条(滑动条)
2011/02/24 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
2018/03/03 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
基于Python解密仿射密码
2019/10/21 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
python 基于opencv去除图片阴影
2021/01/26 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
基层干部十八大感言
2014/01/19 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
群众路线个人整改措施
2014/10/24 职场文书
学生上课说话检讨书
2014/10/25 职场文书
自查自纠整改报告
2014/11/06 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
获奖感言怎么写
2015/07/31 职场文书
超市店长竞聘书
2015/09/15 职场文书
详解MySQL集群搭建
2021/05/26 MySQL