Maison >développement back-end >Problème PHP >Comment implémenter la fonction 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) :
Analyse des étapes :
Si nous avons besoin d'une pagination, nous devons utiliser "select * from tableName limit num1,num2" ; la requête, suivie de Avec 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. montré dans la figure ci-dessous :
D'accord, commençons par les étapes :
1 Créez une fonction pour implémenter la fonction de limitation de la requête
Tout d'abord, réfléchissons-y. Pour implémenter cette fonction, il faut d'abord connaître le nombre de pages actuel et le nombre d'informations à afficher sur une page peuvent être transmis à l'aide de 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. Dans l'instruction de requête "select * from tableName limit num1,num2",num1 est (pageNum -1) *pageSize, num2 est pageSize Après avoir compris cette relation, il sera plus facile à gérer :
//分页的函数 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, il convient de noter que. un espace doit être ajouté après limit , sinon une erreur se produira.
Recommandations associées : "
Tutoriel d'introduction à php2 Créez une deuxième fonction pour afficher le nombre total de pagesIl n'y a pas de nouveaux points de connaissance là-dedans. Ce sont tous des points de connaissance qui ont été écrits auparavant. Regardons simplement le code.
//显示总页数的函数 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 obtenir les résultats de la page suivante et de la page suivante, nous devons donc utiliser le get Cette page transmet des données, donc lorsque nous actualisons la page, get n'obtiendra certainement pas les données, nous devons donc utiliser l'arithmétique trinoculaire.
<?php @$allNum = allNews(); @$pageSize = 3; //约定每页显示的信息条数 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?>
4. Afficher sur la page
Si vous souhaitez l'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 page précédente et de page suivante
Pour obtenir l'effet de saut de page, nous devons utiliser l'attribut href de a. et écrivez l'adresse "?pageNum = .. ." Ce pageNum est défini par nous-mêmes. Puisqu'il est passé par get, nous avons déjà utilisé $_GET pour accepter les paramètres à l'étape précédente, il nous suffit donc de transmettre le. paramètres de get;
Page d'accueil : "pageNum=1";Page précédente : "pageNum=a6f146b5d767d25b67dcb73aad687611"Dernière page : "pageNum=< ;?php echo $pageNum =$endPage? >";Une attention particulière doit être portée à ce qui suit : "pageNum=" ne doit pas être suivi 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 est le suivant :
Effet comme suit :分页 <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>
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!