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).'">'.($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封装分页函数实现文本分页和数字分页PHP封装分页函数实现文本分页和数字分页

<?php 
    // 分页类型 1是数字分页 2是文本分页
    paging(1);
 ?>

数字分页如下:

PHP封装分页函数实现文本分页和数字分页PHP封装分页函数实现文本分页和数字分页

样式自行调整。

PHP 相关文章推荐
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
php学习之数据类型之间的转换代码
May 29 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
php事件驱动化设计详解
Nov 10 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
yii框架使用分页的方法分析
Jul 25 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 #PHP
PHP获取当前页面URL函数实例
Oct 22 #PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 #PHP
百度实时推送api接口应用示例
Oct 21 #PHP
php之curl实现http与https请求的方法
Oct 21 #PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 #PHP
PHP大转盘中奖概率算法实例
Oct 21 #PHP
You might like
超级简单的php+mysql留言本源码
2009/11/11 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Django之腾讯云短信的实现
2020/06/12 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
综合测评自我鉴定
2013/10/08 职场文书
动员大会主持词
2014/03/20 职场文书
初中毕业生感言
2015/07/31 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP
Pandas数据结构之Series的使用
2022/03/31 Python