又一个php 分页类实现代码

我会详细讲解“又一个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实现动态修改.env文件配置(适用于任何框架)

    /** * @function 动态的设置env文件中某项配置值 * @param $env_path string env文件路径 * @param $key string 配置项 * @param $val string|int 配置值 * @return bool 返回是否成功修改 * @other 如果env文件中没有这$key这一项,会在env文件…

    PHP 2023年4月18日
    00
  • php array_slice函数的使用以及参数详解

    PHP array_slice 函数的使用以及参数详解 在 PHP 中,array_slice 函数可以用来获取数组的一部分,并返回这部分内容的新数组。 基本语法 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array 参数…

    PHP 2023年5月26日
    00
  • PHP 采集程序 常用函数

    关于”PHP采集程序常用函数”的攻略,可以从以下几个方面展开讲解: 一、采集目标网址 在采集程序中,首先要确定好需要采集的目标网址。可以通过cURL库或file_get_contents函数获取页面数据。其中,cURL库需要先执行curl_init()函数进行初始化,再设置相关的参数,最后通过curl_exec()函数执行获取页面数据的操作,例如: $url…

    PHP 2023年5月23日
    00
  • 一个完整的PHP类包含的七种语法说明

    一个完整的PHP类包含的七种语法说明是指:类声明、属性声明、方法声明、常量声明、构造方法、析构方法和命名空间声明。下面将逐一对这七种语法进行详细讲解。 类声明 类声明是PHP中定义类的语法结构,它由class关键字、类名、类体和一对花括号组成。类体中包含了类的属性和方法。 class MyClass { //类体中的属性和方法 } 属性声明 属性是类的一种成…

    PHP 2023年5月25日
    00
  • 基于PHP异步执行的常用方式详解

    基于PHP异步执行的常用方式详解 在PHP编程中,我们经常会遇到需要异步执行一些任务的场景,比如: 对于大量的I/O操作,例如从数据库读取大量数据、发送HTTP请求等,可以通过异步执行来提高并发处理的效率。 在PHP后台中执行一些长时间运行的任务,以避免阻塞Web服务器的主要线程。 对于PHP异步执行任务,一般有以下几种常用方式: 方式一:使用pcntl_f…

    PHP 2023年5月27日
    00
  • 微信小程序-form表单提交代码实例

    微信小程序-form表单提交代码实例攻略 在微信小程序中,我们可以使用form表单来收集用户的信息,并将其提交到指定的接口进行处理。本文将详细讲解如何创建和使用form表单,在提交数据时如何处理和验证数据,以及如何处理提交的结果。 创建form表单 要创建一个form表单,我们需要在wxml文件中使用form标签,例如: <form bindsubmi…

    PHP 2023年5月23日
    00
  • PHP常用字符串函数用法实例总结

    PHP常用字符串函数用法实例总结 本文主要介绍PHP常用的字符串处理函数,并给出一些实例说明。 strlen() strlen() 函数用于计算一个字符串的长度,返回值为字符串的长度。 示例1:获取字符串的长度 $str = "Hello, World!"; $length = strlen($str); echo "字符串 ‘…

    PHP 2023年5月26日
    00
  • 通过具体程序来理解PHP里面的抽象类

    一个抽象类是不能被直接实例化的,必须被子类继承并实现所有的抽象方法之后才能被实例化。在PHP里面,我们可以通过自定义一个抽象类并定义抽象方法来进行实践应用。下面是一个具体程序来理解PHP里面的抽象类。 创建一个抽象类 先创建一个抽象类,这个类里面定义了两个抽象方法,分别是getArea()和getPerimeter(),用于求图形的面积和周长。 abstra…

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