PHP实现简单实用的分页类代码

yizhihongxing

这里是实现PHP分页类的攻略。

第一步:创建类文件

首先,我们需要拥有一个类文件,定义一个Pagination类。该类具有以下属性:

  • $pageNums:总页数
  • $pageSize:每页显示数据的数量
  • $currentPage:当前页面
  • $totalNums:总记录数

除此之外,类中还需要包含公共方法用于获取总页数、总记录数及当前页数据。

class Pagination {
    public $pageNums;
    public $pageSize;
    public $currentPage;
    public $totalNums;

    function __construct($pdo, $table, $pageSize) {
        $sql = "SELECT COUNT(*) AS count FROM $table";
        $result = $pdo->query($sql)->fetch(PDO::FETCH_ASSOC);
        $this->pageSize = $pageSize;
        $this->totalNums = $result['count'];
        $this->pageNums = ceil($this->totalNums / $this->pageSize);
        $this->currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
    }

    public function getOffset() {
        return ($this->currentPage - 1) * $this->pageSize;
    }

    public function getPageData($pdo, $table) {
        $offset = $this->getOffset();
        $sql = "SELECT * FROM $table LIMIT $this->pageSize OFFSET $offset";
        $stmt = $pdo->prepare($sql);
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

第二步:使用类文件

下面是如何使用Pagination类的一个示例:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'user', 'pass');
$table = 'posts';
$pageSize = 10;
$pagination = new Pagination($pdo, $table, $pageSize);
$pageData = $pagination->getPageData($pdo, $table);
?>

<!-- 在HTML中显示分页 -->
<div class="pagination">
    <?php for ($i = 1; $i <= $pagination->pageNums; $i++):?>
        <a href="?page=<?php echo $i;?>" <?php if($i==$pagination->currentPage) echo 'class="active"';?>><?php echo $i;?></a>
    <?php endfor;?>
</div>

<!-- 显示当前页面数据 -->
<div class="data">
    <?php foreach ($pageData as $data):?>
        <div class="post">
            <h2><?php echo $data['title'];?></h2>
            <p><?php echo $data['content'];?></p>
        </div>
    <?php endforeach;?>
</div>

这里使用了PDO连接到数据库,并定义了要查询的数据表 $table 及每页显示的数据数量 $pageSize 。然后,在构造函数中计算出总页数及设置当前页面。接着,getPageData() 方法用于获取当前页面的数据。在HTML中,可以通过 $pagination->pageNums 获取总页数,在循环中输出链接,将当前页面的链接加上 class="active" 属性。在 $pageData 中存储了当前页面的数据,在循环中显示该数据。

下面是另一个示例,该示例中 $table 取得了输入参数,允许在不同的表格中应用该分页类。

<?php
$table = isset($_GET['table']) ? $_GET['table'] : 'posts';
$pageSize = 10;
$pagination = new Pagination($pdo, $table, $pageSize);
$pageData = $pagination->getPageData($pdo, $table);
?>

<!-- 在HTML中显示分页 -->
<div class="pagination">
    <?php for ($i = 1; $i <= $pagination->pageNums; $i++):?>
        <a href="?page=<?php echo $i;?>&table=<?php echo $table;?>" <?php if($i==$pagination->currentPage) echo 'class="active"';?>><?php echo $i;?></a>
    <?php endfor;?>
</div>

<!-- 显示当前页面数据 -->
<div class="data">
    <?php foreach ($pageData as $data):?>
        <div class="post">
            <h2><?php echo $data['title'];?></h2>
            <p><?php echo $data['content'];?></p>
        </div>
    <?php endforeach;?>
</div>

这里通过检查 $_GET 来获取想要查询的表格名 $table 。注意,我们在每个链接中传递了 $table 变量,以便在从另一个页面链接时继续使用 $table。其他部分与前面的示例相同。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现简单实用的分页类代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • php动态生成缩略图并输出显示的方法

    生成缩略图是 web 开发中比较常见的需求,实现缩略图的方法也有很多,通常可以使用 PHP 库函数或第三方库来实现。下面是一个详细讲解如何使用 PHP 动态生成缩略图并输出显示的完整攻略: 第一步:获取原图和缩略图的路径 首先,需要获取需要生成缩略图的原图路径和要存储缩略图的路径。在示例中,我们使用 $_GET 获取图片的名称和大小参数,然后拼接出原图和缩略…

    PHP 2023年5月26日
    00
  • PHP通过CURL实现定时任务的图片抓取功能示例

    首先需要确保服务器已经安装了CURL扩展。接下来按照以下步骤进行PHP通过CURL实现定时任务的图片抓取功能: 第一步:设置获取的数据URL 首先,需要确定要从哪个URL获取数据。如果目标URL需要进行验证授权才能访问数据,则在此步骤中需要确定相应的验证授权方式,并获取授权信息。 例如,从以下URL获取一张图片:https://www.example.com…

    PHP 2023年5月26日
    00
  • 微信小程序实用代码段(收藏版)

    下面是针对“微信小程序实用代码段(收藏版)”进行的详细讲解攻略。 什么是微信小程序实用代码段? 微信小程序实用代码段是针对微信小程序的开发,提供的一些通用代码段,非常适合初学者和有一定经验的开发者使用。这些代码段可以提高开发效率,减少重复的代码编写,并且可以优化小程序的性能和用户体验。 如何使用微信小程序实用代码段? 要使用微信小程序实用代码段,首先需要将代…

    PHP 2023年5月23日
    00
  • phpcms模块开发之swfupload的使用介绍

    下面就为您详细讲解”phpcms模块开发之swfupload的使用介绍”。 什么是swfupload? swfupload是一款使用Flash和JavaScript开发的多文件上传工具,可以上传多个文件,可以显示上传进程,在上传过程中可以使用自定义的事件来实现一些个性化的处理,广泛应用于各类网站的文件上传功能中。 如何在phpcms中使用swfupload?…

    PHP 2023年5月26日
    00
  • php数组转换js数组操作及json_encode的用法详解

    下面我来详细讲解“php数组转换js数组操作及json_encode的用法详解”的完整攻略。 简介 在Web开发中,php作为服务器端语言经常与js进行交互。而php数组转换js数组则是常见的一种操作,它可以把php中的数组转换为js中的数组,使得前后端数据传递更加便捷。而json_encode则是将php数组转换为JSON字符串的函数,也是实现php数组转…

    PHP 2023年5月26日
    00
  • [PHP]经常用到的实用函数集合

    关于“[PHP]经常用到的实用函数集合”的完整攻略,我将从以下几个方面进行讲解: 什么是实用函数集合 实用函数集合的使用 常用实用函数详解 示例说明 接下来我将逐一进行讲解。 一、什么是实用函数集合 实用函数集合,顾名思义,就是一系列可以快速解决我们实际需求的代码片段集合。在 PHP 中,由于对字符串、数组等的操作十分频繁,所以实用函数集合是个很常见的存在。…

    PHP 2023年5月27日
    00
  • PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】

    PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】 在PHP开发中,设计模式是一种很常见的编程思想。设计模式是对软件开发中经常出现的问题得出的通用解决方案。下面我将详细讲解PHP中三种常用的设计模式:单例模式、工厂模式、观察者模式。 单例模式 单例模式是一种创建型模式,它的目的是保证一个类只有一个实例,而且提供了一个全局访问该实例的方法。下面是…

    PHP 2023年5月23日
    00
  • php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】

    当网站需要设计一些用户交互功能时,拖动滑块验证码是一种比较常见的方式。通过使用PHP和JS的结合,可以实现一个简单的拖动滑块验证码验证表单操作。以下是完整攻略。 环境准备 安装PHP 安装Web服务器(如Apache) 在服务器上安装MySQL 实现步骤 创建数据库表 为了实现验证码的验证功能,我们需要在数据库中存储用户的滑块位置以及生成的验证码,因此,首先…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部