Maison >développement back-end >Problème PHP >Comment obtenir un effet de pagination en php

Comment obtenir un effet de pagination en php

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-08-30 11:56:563341parcourir

Comment obtenir un effet de pagination en php

L'effet de pagination est courant dans les pages Web, mais comment pouvons-nous obtenir la pagination ? Aujourd'hui, nous avons utilisé deux méthodes pour obtenir l'effet de pagination ?

Tout d'abord, nous devons préparer une table dans la base de données et insérer des données. Ce sont tous des prérequis nécessaires. Pas grand chose à dire, comme le montre l'image (le nom de la bibliothèque est jereh, le nom de la table est. n_content) :

Comment obtenir un effet de pagination en php

Analyse des étapes :

Si nous avons besoin d'une pagination, nous devons utiliser "select * from tableName limit num1,num2" ; instruction de requête limitée, suivie de deux paramètres, num1 est le numéro à partir duquel commencer la recherche et num2 est le nombre d'informations à rechercher. Par exemple, je souhaite rechercher trois éléments de données : 2, 3 et 4, comme. illustré dans la figure ci-dessous :

Comment obtenir un effet de pagination en php

Recommandations associées : "Tutoriel PHP"

D'accord, commençons par les étapes :

1. Créez une fonction pour implémenter la fonction de limitation des requêtes.

Tout d'abord, réfléchissons-y. Pour implémenter cette fonction, nous devons d'abord connaître le nombre actuel de pages et combien d'informations nous souhaitons limiter sur une page. Cela peut être transmis en utilisant. paramètres formels. Ensuite,

Nous définissons pageNum comme étant le nombre de pages et pageSize pour afficher plusieurs éléments de données sur une page,

num1 est (pageNum-1) *pageSize, num2 est pageSize, après avoir compris cette relation, il sera plus facile à gérer le code est le suivant :

//分页的函数
function news($pageNum = 1, $pageSize = 3)
{
    $array = array();
    $coon = mysqli_connect("localhost", "root");
    mysqli_select_db($coon, "jereh");
    mysqli_set_charset($coon, "utf8");
    // limit为约束显示多少条信息,后面有两个参数,第一个为从第几个开始,第二个为长度
    $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;
    $r = mysqli_query($coon, $rs);
    while ($obj = mysqli_fetch_object($r)) {
        $array[] = $obj;
    }
    mysqli_close($coon,"jereh");
    return $array;
}

Dans le code ci-dessus, c'est. à noter qu'un espace doit être ajouté après la limite, sinon une erreur se produira

2. Créez une deuxième fonction pour afficher le nombre total de pages.

Il n'y a pas de nouveaux points de connaissance là-dedans. Ce sont tous des points de connaissance qui ont été écrits auparavant.

//显示总页数的函数
function allNews()
{
    $coon = mysqli_connect("localhost", "root");
    mysqli_select_db($coon, "jereh");
    mysqli_set_charset($coon, "utf8");
    $rs = "select count(*) num from n_content"; //可以显示出总页数
    $r = mysqli_query($coon, $rs);
    $obj = mysqli_fetch_object($r);
    mysqli_close($coon,"jereh");
    return $obj->num;
}

3. Appelez ces deux fonctions pour un traitement préliminaire.

Nous voulons faire la page suivante et les résultats de la page suivante. Nous devons utiliser la méthode get pour transférer les données sur cette page. Ensuite, lorsque nous actualisons la page, get n'obtiendra certainement pas les données, nous devons donc utiliser l’arithmétique trinoculaire, regardons le code.

<?php
   @$allNum = allNews();
   @$pageSize = 3; //约定每页显示的信息条数
   @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"];
   @$endPage = ceil($allNum/$pageSize); //总页数
   @$array = news($pageNum,$pageSize);
   ?>

4. Affichage sur la page.

Pour afficher sur la page, vous devez utiliser une boucle foreach. Le code est simple, voir ci-dessous :

<table border="1" style="text-align: center" cellpadding="0">
    <tr>
        <td>编号</td>
        <td>新闻标题</td>
        <td>来源</td>
        <td>点击率</td>
        <td>发布日期</td>
    </tr>
    <?php
    foreach($array as $key=>$values){
        echo "<tr>";
        echo "<td>{$values->id}</td>";
        echo "<td>{$values->title}</td>";
        echo "<td>{$values->src}</td>";
        echo "<td>{$values->indexs}</td>";
        echo "<td>{$values->times}</td>";
        echo "</tr>";
    }
    ?>
</table>

5 Pour obtenir l'effet de la page précédente et de la page suivante.

Pour obtenir l'effet de saut de page, nous devons utiliser l'attribut href de la balise a. L'adresse est "?pageNum =..." Ce pageNum est défini par nous-mêmes Puisqu'il est passé par get, in À l'étape précédente, nous avons utilisé $_GET pour accepter les paramètres, il nous suffit donc de transmettre les paramètres get

Page d'accueil : "pageNum=1";

Page précédente : " pageNum="

Page suivante :"pageNum="

Dernière page : "pageNum=";

Une attention particulière est "pageNum= "Be assurez-vous de ne pas le suivre d'un espace. Le code est le suivant :

<a href="?pageNum=1">首页</a>
   <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a>
   <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a>
   <a href="?pageNum=<?php echo $endPage?>">尾页</a>

Le code total est le suivant :




    
    分页
   


<table border="1" style="text-align: center" cellpadding="0">
    <tr>
        <td>编号</td>
        <td>新闻标题</td>
        <td>来源</td>
        <td>点击率</td>
        <td>发布日期</td>
    </tr>
    <?php
    foreach($array as $key=>$values){
        echo "<tr>";
        echo "<td>{$values->id}</td>";
        echo "<td>{$values->title}</td>";
        echo "<td>{$values->src}</td>";
        echo "<td>{$values->indexs}</td>";
        echo "<td>{$values->times}</td>";
        echo "</tr>";
    }
    ?>
</table>

 

L'effet est le suivant :

Comment obtenir un effet de pagination en php

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!

Déclaration:
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