又一个php 分页类实现代码

yizhihongxing

我会详细讲解“又一个php 分页类实现代码”的完整攻略。

又一个php 分页类实现代码

什么是分页?

分页是指将一定量的数据进行切割,每次只显示其中一部分数据的方式,将多页面切成一个个子页面,以方便用户阅读。

为什么需要分页?

大数据的处理必须使用分页机制,可以将一部分数据流进行缓存,减轻服务器压力,并能有效地提高用户体验。

怎么实现分页?

本文主要介绍一个php 分页类的实现方法。

在使用分页类之前,需要用到以下4个变量和参数:

  • $count 总记录数
  • $page_size 每页显示的记录数
  • $page 当前页
  • $page_count 总页数

下面是一个示例代码:

class Page {
    private $count = 0;
    private $page_size = 10;
    private $page = 1;
    private $page_count = 1;
    private $url = "/";

    public function __construct($count, $page_size = 10, $page = 1, $url = "/") {
        $this->count = $count;
        $this->page_size = $page_size;
        $this->page = $page;
        $this->url = $url;

        $this->page_count = ceil($this->count / $this->page_size);
    }

    public function start_index() {
        return ($this->page - 1) * $this->page_size;
    }

    public function end_index() {
        $end = $this->page * $this->page_size - 1;
        return ($end > $this->count) ? $this->count - 1 : $end;
    }

    public function show() {
        $html = '';
        if ($this->page_count > 1) {
            $html .= '<div class="pagination">';
            if ($this->page > 1) {
                $html .= "<a href=\"{$this->url}?page=" . ($this->page - 1) . "\">上一页</a>";
            }
            $html .= "<span>{$this->page}/{$this->page_count}</span>";
            if ($this->page < $this->page_count) {
                $html .= "<a href=\"{$this->url}?page=" . ($this->page + 1) . "\">下一页</a>";
            }
            $html .= '</div>';
        }
        return $html;
    }
}

该类的作用为计算分页的信息和生成分页展示的HTML代码。使用示例如下:

$mysqli = new mysqli("localhost", "root", "password", "database");
$result = $mysqli->query("SELECT COUNT(*) FROM tablename");
$row = $result->fetch_array();
$count = $row[0];

$page = isset($_GET['page']) ? intval($_GET['page']) : 1;

$page_size = 10; // 每页显示多少条数据

$pager = new Page($count, $page_size, $page, "/list.php");
$start_index = $pager->start_index();
$end_index = $pager->end_index();

$sql = "SELECT * FROM tablename LIMIT {$start_index}, {$page_size}";
$result = $mysqli->query($sql);

while ($row = $result->fetch_array()) {
    echo $row['id'] . ' - ' . $row['title'] . '<br/>';
}

echo $pager->show();

以上代码中,使用了mysqli的query方法获取总记录数,通过实例化Page类计算得到总页数和生成分页HTML代码,再通过LIMIT关键字取得分页数据,最终将分页展示的HTML代码输出到页面中即可。

示例说明

示例1

假设有一个名为“goods”的数据表,表中有100条记录,现在需要实现分页功能,每页显示10条记录。

首先,我们需要获取总记录数:

$mysqli = new mysqli("localhost", "root", "password", "database");
$result = $mysqli->query("SELECT COUNT(*) FROM goods");
$row = $result->fetch_array();
$count = $row[0];

然后,实例化Page类,并指定每页显示10条记录,当前页为1,分页URL为“/list.php”:

$page_size = 10;
$page = 1;
$pager = new Page($count, $page_size, $page, "/list.php");

接下来,计算取数据时的起始和终止下标:

$start_index = $pager->start_index();
$end_index = $pager->end_index();

最后,使用LIMIT关键字获取分页数据,并将分页展示的HTML代码输出到页面中:

$sql = "SELECT * FROM goods LIMIT {$start_index}, {$page_size}";
$result = $mysqli->query($sql);

while ($row = $result->fetch_array()) {
    echo $row['id'] . ' - ' . $row['name'] . '<br/>';
}

echo $pager->show();

示例2

假设有一个名为“students”的数据表,表中有200条记录,现在需要实现分页功能,每页显示15条记录。

首先,我们需要获取总记录数:

$mysqli = new mysqli("localhost", "root", "password", "database");
$result = $mysqli->query("SELECT COUNT(*) FROM students");
$row = $result->fetch_array();
$count = $row[0];

然后,实例化Page类,并指定每页显示15条记录,当前页为3,分页URL为“/list.php”:

$page_size = 15;
$page = 3;
$pager = new Page($count, $page_size, $page, "/list.php");

接下来,计算取数据时的起始和终止下标:

$start_index = $pager->start_index();
$end_index = $pager->end_index();

最后,使用LIMIT关键字获取分页数据,并将分页展示的HTML代码输出到页面中:

$sql = "SELECT * FROM students LIMIT {$start_index}, {$page_size}";
$result = $mysqli->query($sql);

while ($row = $result->fetch_array()) {
    echo $row['id'] . ' - ' . $row['name'] . '<br/>';
}

echo $pager->show();

以上两个示例使用了不同的数据表和分页参数,但是分页类的实现方法和使用方法都是一致的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:又一个php 分页类实现代码 - Python技术站

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

相关文章

  • php 学习笔记第1/2页

    “php 学习笔记第1/2页”是一个用来学习PHP编程语言的笔记教程。以下是完整攻略: 1. 简介 在阅读“php 学习笔记第1/2页”之前,需要先了解一些基本的HTML和Web开发知识。本教程将带领读者逐步学习PHP的基本语法和常用函数,以及如何将PHP应用到Web开发中。 2. 基本语法 2.1 变量 在PHP中,变量以$符号开头。变量名可以包含字母、数…

    PHP 2023年5月23日
    00
  • PHP数据类型之布尔型的介绍

    PHP数据类型之布尔型的介绍 在PHP中,布尔型(Boolean)用于表示真假两个值,分别用true和false表示。它通常用于条件判断、循环等语句中,用于控制程序的执行。 定义布尔型变量 定义布尔型变量可以直接使用true或false关键字对变量进行赋值,也可以通过函数返回值来获取布尔型值。 // 直接赋值 $bool_true = true; // $b…

    PHP 2023年5月26日
    00
  • 详解PHP文件的自动加载(autoloading)

    那我来详细讲解一下“详解PHP文件的自动加载(autoloading)”的完整攻略。 什么是PHP文件的自动加载 在编写PHP程序时,我们通常会使用许多不同的类和函数来完成相应的功能,这些类和函数通常被定义在不同的文件中。而在PHP中,如果我们需要使用某个文件中的类或函数,通常需要使用 require 或 include 函数将其引入,才能在代码中正常使用这…

    PHP 2023年5月26日
    00
  • php获取指定数量随机字符串的方法

    要获取指定数量的随机字符串,可以借助PHP内置的函数来实现。下面是一些获取随机字符串的方法,供参考。 使用rand函数 rand函数可以生成指定范围内的随机数,我们可以利用它来生成随机字符串。具体实现步骤如下: 定义可用于生成随机字符串的字符集合 $chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST…

    PHP 2023年5月26日
    00
  • PHP单链表的实现代码

    下面是关于“PHP单链表的实现代码”的完整攻略: 一、单链表的概念 单链表是一种线性数据结构。与数组不同,链表中的元素在内存中不是连续放置的,每个元素由一个存储本身元素的节点和一个指向下一个元素的指针组成。 二、单链表的实现 1. 定义单链表节点类 首先,我们需要定义一个节点类,用来表示单链表中的节点。每个节点应该包含一个数据域(存放节点的值)和一个指针域(…

    PHP 2023年5月27日
    00
  • PHP代码加密的方法总结

    PHP代码加密的方法总结 PHP代码加密可以将源代码加密成一段难以理解的代码,从而保护代码不被盗用或者修改。下面总结了几种PHP代码加密的方法。 1. Zend Guard Zend Guard是Zend公司推出的一个PHP代码加密器。它可以将PHP源代码编译成Zend Optimizer可执行的格式,使攻击者无法读取和修改源代码。使用Zend Guard加…

    PHP 2023年5月24日
    00
  • PHP使用数组依次替换字符串中匹配项

    使用数组依次替换字符串中匹配项是PHP中常用的操作,下面是具体的攻略: 1. 准备替换的字符串 首先,我们需要一个待替换的字符串。例如,我们有一个字符串为: Hello, {name}. Your age is {age}. 其中,{name}和{age}都是需要替换的占位符。我们将使用PHP中的数组,来依次替换这些占位符。 2. 创建替换数组 在PHP中,…

    PHP 2023年5月26日
    00
  • php-fpm.conf配置文件中文说明详解及重要参数说明

    让我来详细讲解一下“php-fpm.conf配置文件中文说明详解及重要参数说明”的完整攻略。 前言 php-fpm 是 NGINX 下最常用的 PHP 解释器管理程序,是一个高效的 PHP 解决方案。php-fpm 配置文件 php-fpm.conf 可以控制 php-fpm 运行时的一些行为以及基础设施设置。 配置文件结构 php-fpm.conf 配置文…

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