当前位置:首页 > PHP

php实现第几页

2026-02-16 14:26:06PHP

PHP实现分页功能

分页功能在Web开发中非常常见,特别是在展示大量数据时。PHP可以通过多种方式实现分页功能。

php实现第几页

基础分页实现

// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 每页显示的记录数
$records_per_page = 10;

// 获取当前页码
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start_from = ($page - 1) * $records_per_page;

// 查询数据
$query = "SELECT * FROM table_name LIMIT $start_from, $records_per_page";
$result = $conn->query($query);

// 显示数据
while ($row = $result->fetch_assoc()) {
    echo $row['column_name']."<br>";
}

// 计算总页数
$total_query = "SELECT COUNT(*) FROM table_name";
$total_result = $conn->query($total_query);
$total_rows = $total_result->fetch_row()[0];
$total_pages = ceil($total_rows / $records_per_page);

// 分页链接
for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='?page=".$i."'>".$i."</a> ";
}

使用PDO实现分页

try {
    $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');

    $records_per_page = 10;
    $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
    $offset = ($page - 1) * $records_per_page;

    $stmt = $pdo->prepare("SELECT * FROM table_name LIMIT :offset, :limit");
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
    $stmt->bindParam(':limit', $records_per_page, PDO::PARAM_INT);
    $stmt->execute();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $row['column_name']."<br>";
    }

    $total_stmt = $pdo->query("SELECT COUNT(*) FROM table_name");
    $total_rows = $total_stmt->fetchColumn();
    $total_pages = ceil($total_rows / $records_per_page);

    for ($i = 1; $i <= $total_pages; $i++) {
        echo "<a href='?page=".$i."'>".$i."</a> ";
    }
} catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}

使用Bootstrap美化分页

// 计算总页数后
echo '<nav aria-label="Page navigation">';
echo '<ul class="pagination">';
if ($page > 1) {
    echo '<li class="page-item"><a class="page-link" href="?page='.($page - 1).'">Previous</a></li>';
}
for ($i = 1; $i <= $total_pages; $i++) {
    $active = $i == $page ? ' active' : '';
    echo '<li class="page-item'.$active.'"><a class="page-link" href="?page='.$i.'">'.$i.'</a></li>';
}
if ($page < $total_pages) {
    echo '<li class="page-item"><a class="page-link" href="?page='.($page + 1).'">Next</a></li>';
}
echo '</ul>';
echo '</nav>';

分页类实现

可以创建一个独立的分页类来封装分页逻辑:

php实现第几页

class Pagination {
    private $total_records;
    private $records_per_page;
    private $current_page;

    public function __construct($total_records, $records_per_page = 10, $current_page = 1) {
        $this->total_records = $total_records;
        $this->records_per_page = $records_per_page;
        $this->current_page = $current_page;
    }

    public function getOffset() {
        return ($this->current_page - 1) * $this->records_per_page;
    }

    public function getTotalPages() {
        return ceil($this->total_records / $this->records_per_page);
    }

    public function getLinks($url = '?page=') {
        $links = '';
        $total_pages = $this->getTotalPages();

        if ($this->current_page > 1) {
            $links .= '<a href="'.$url.($this->current_page - 1).'">Previous</a> ';
        }

        for ($i = 1; $i <= $total_pages; $i++) {
            if ($i == $this->current_page) {
                $links .= '<strong>'.$i.'</strong> ';
            } else {
                $links .= '<a href="'.$url.$i.'">'.$i.'</a> ';
            }
        }

        if ($this->current_page < $total_pages) {
            $links .= '<a href="'.$url.($this->current_page + 1).'">Next</a>';
        }

        return $links;
    }
}

使用示例:

$total_records = 100; // 从数据库获取总记录数
$records_per_page = 10;
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;

$pagination = new Pagination($total_records, $records_per_page, $current_page);
$offset = $pagination->getOffset();

// 使用$offset和$records_per_page查询数据
// ...

// 显示分页链接
echo $pagination->getLinks();

标签: php
分享给朋友:

相关文章

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数组…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php mvc实现

php mvc实现

PHP MVC 实现步骤 模型(Model)层 模型负责数据处理和业务逻辑,通常与数据库交互。创建一个基类模型,其他具体模型继承它。 class Model { protected $db;…