Maison > développement back-end > Problème PHP > Comment implémenter la pagination des requêtes pour afficher les numéros de page en php

Comment implémenter la pagination des requêtes pour afficher les numéros de page en php

PHPz
Libérer: 2023-03-29 11:00:13
original
1143 Les gens l'ont consulté

Dans le développement Web, la requête et l'affichage de données sont des opérations très courantes. Pour l'affichage par pagination des données interrogées, le numéro de page correspondant doit être affiché sur la page, ce qui est une condition nécessaire pour que les utilisateurs puissent faciliter les opérations de changement de page. Cet article expliquera comment implémenter la pagination des requêtes via le code PHP et afficher les numéros de page correspondants dans la page de liste.

1. Principes de base de la pagination des requêtes

Une fonction de pagination complète doit prendre en compte plusieurs facteurs tels que les conditions de requête, le nombre de pagination et le numéro de page actuel. Dans l'implémentation spécifique, vous devez d'abord interroger le nombre total de toutes les données qui remplissent les conditions via les conditions de requête, puis calculer le nombre total de pages en fonction du nombre total de données et du nombre affiché sur chaque page, effectuer des requêtes de pagination. , et enfin afficher les données et les numéros de page correspondants sur le front-end.

Le processus spécifique est le suivant :

    <li>Obtenir les conditions de requête <li>Interroger la quantité totale de données qui remplissent les conditions <li>Calculer le nombre total de pages en fonction du nombre affiché sur chaque page <li>Obtenir la page actuelle numéro demandé par l'utilisateur <li>Calculer la position de départ de la requête de pagination <li>Effectuer une opération de requête de pagination <li>Afficher les données et les numéros de page correspondants sur la page frontale

2 Implémenter la pagination de la requête avec PHP

Ensuite, nous implémentez la fonction de pagination des requêtes via le code PHP.

2.1 Requête totale

Tout d'abord, nous devons interroger la quantité totale de données qui remplissent les conditions. Supposons que nous ayons une table de données nommée items, qui comporte un champ statut indiquant l'état des données. Nous devons interroger toutes les données avec le statut 1. nombre total d'enregistrements, le code est le suivant : items的数据表,其中有一个status字段表示数据状态,我们需要查询状态为1的所有数据记录总数,代码如下:

// 连接数据库
$conn = mysqli_connect('<host>', '<username>', '<password>', '<database>');

// 构造查询SQL,获取符合条件的数据总数
$sql = "SELECT COUNT(*) AS total FROM `items` WHERE `status`=1";
$res = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($res);
$total = $row['total'];
Copier après la connexion

该段代码中,我们首先通过mysqli_connect函数连接到数据库,然后构造查询SQL,并借助mysqli_query函数执行查询操作,最后通过mysqli_fetch_assoc函数从查询结果中获取总数。

2.2 计算总页数和当前页码

接下来,我们需要根据每页显示的数量和总数据量,计算出总页数和用户请求的当前页码。

// 定义每页显示的数据条数和当前请求的页码,默认为1和1
$limit = 10; // 每页显示的数据条数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 当前请求的页码

// 计算总页数
$totalPage = ceil($total / $limit);
if ($page > $totalPage || $page < 1) {
    $page = 1;
}

// 计算分页查询的起始位置
$offset = ($page - 1) * $limit;
Copier après la connexion

其中,我们通过isset函数检查请求参数中是否有page参数,如果有,则通过intval函数将其转换为整型;如果没有,则默认为第一页。然后通过ceil函数计算出总页数,并对请求的页码进行有效性判断。

最后,我们需要计算出分页查询的起始位置,以便在数据库中进行分页查询。我们通过简单的乘法运算计算出数据开始查询的偏移量。

2.3 执行分页查询

有了总数据量、总页数和查询偏移量,我们就可以进行分页查询了。下面是查询分页数据的代码示例:

// 查询数据(以status字段为1的数据为例)
$sql = "SELECT * FROM `items` WHERE `status`=1 LIMIT {$offset},{$limit}";
$res = mysqli_query($conn, $sql);
$rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
Copier après la connexion

该代码段将查询偏移量和每页显示数量传入SQL语句中的LIMIT关键字中,执行分页查询操作。查询结果通过mysqli_fetch_all函数获取,并以PHP数组的形式返回给调用者。

2.4 分页展示页码

最后,我们需要将查询结果和对应的页码展示到前端页面上。对于页码展示,我们通常使用HTML的<ul>和<code><li>元素,将每一页的页码链接包装在<li>元素中,并使用<ul>元素将所有页码链接包裹起来。

<!-- 分页展示 -->
<ul>
    <?php for ($i = 1; $i <= $totalPage; $i++) : ?>
        <li <?php if ($i == $page) echo &#39;class="active"&#39; ?>>
            <?php if ($i == $page) : ?>
                <?php echo $i; ?>
            <?php else : ?>
                <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
            <?php endif; ?>
        </li>
    <?php endfor; ?>
</ul>
Copier après la connexion

上述代码中,我们使用一个for循环遍历所有页码,对于当前页码,我们给其对应的<li>元素添加一个active类,以便于前端样式处理。同时,我们采用了条件语句来处理当前页码的展示,当前页码不需要添加链接,通过echo语句直接输出即可;而其他页码则需要通过<a>rrreee

Dans ce code, nous nous connectons d'abord à la base de données via la fonction mysqli_connect, puis construisons la requête SQL et effectuons l'opération de requête avec l'aide de la fonction mysqli_query Enfin, le nombre total est obtenu à partir des résultats de la requête via la fonction mysqli_fetch_assoc.

2.2 Calculer le nombre total de pages et le numéro de page actuel

Ensuite, nous devons calculer le nombre total de pages et le numéro de page actuel demandé par l'utilisateur en fonction du numéro affiché sur chaque page et de la quantité totale de données . 🎜rrreee🎜Parmi eux, nous utilisons la fonction isset pour vérifier s'il y a un paramètre page dans le paramètre de requête. Si c'est le cas, nous utilisons le intvalcode> pour le convertir en type Integer ; sinon, la valeur par défaut est la première page. Ensuite, le nombre total de pages est calculé via la fonction <code>ceil, et la validité du numéro de page demandé est jugée. 🎜🎜Enfin, nous devons calculer la position de départ de la requête de pagination afin d'effectuer une requête de pagination dans la base de données. Nous utilisons une simple opération de multiplication pour calculer le décalage auquel les données commencent à être interrogées. 🎜🎜2.3 Exécuter une requête de pagination🎜🎜Avec le volume total de données, le nombre total de pages et le décalage de la requête, nous pouvons effectuer une requête de pagination. Voici un exemple de code pour interroger les données de pagination : 🎜rrreee🎜Cet extrait de code transmet le décalage de la requête et le nombre d'affichages par page dans le mot-clé LIMIT de l'instruction SQL pour effectuer l'opération de requête de pagination. Les résultats de la requête sont obtenus via la fonction mysqli_fetch_all et renvoyés à l'appelant sous la forme d'un tableau PHP. 🎜🎜2.4 Afficher les numéros de page dans la pagination 🎜🎜Enfin, nous devons afficher les résultats de la requête et les numéros de page correspondants sur la page frontale. Pour l'affichage du numéro de page, nous utilisons généralement les éléments HTML <ul> et <li> pour envelopper le lien du numéro de page de chaque page dans <li> et utilisez l'élément <ul> pour envelopper tous les liens de numéro de page. 🎜rrreee🎜Dans le code ci-dessus, nous utilisons une boucle for pour parcourir tous les numéros de page. Pour le numéro de page actuel, nous ajoutons un actif à son <li> classe d'élément pour faciliter le traitement du style frontal. En même temps, nous utilisons des instructions conditionnelles pour traiter l'affichage du numéro de page actuel n'a pas besoin d'ajouter de lien, il peut être affiché directement via l'instruction echo while other ; les numéros de page doivent être transmis via <a> ajoute un lien. 🎜🎜3. Résumé🎜🎜Cet article explique comment implémenter la pagination des requêtes via PHP et comment afficher le numéro de la page de pagination dans la page frontale. La mise en œuvre de la fonction de pagination est une tâche courante dans le développement Web. Grâce à l'introduction de cet article, je pense que tout le monde a une compréhension plus approfondie de la fonction de pagination. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal