Je crois que mes amis connaissent la pagination dans notre développement PHP, qu'il s'agisse d'un site Web d'entreprise ou d'un centre commercial. Toute gestion d'arrière-plan est indissociable de la pagination, qui peut être considérée comme un élément indispensable. L'effet de pagination est courant dans les pages Web PHP, mais comment pouvons-nous réaliser la pagination ? Aujourd'hui, nous avons utilisé deux méthodes pour obtenir l'effet de pagination !
Tout d'abord, nous devons préparer un tableau 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 par étapes :
Si nous avons besoin paging , vous devez utiliser "select * from tableName limit num1,num2" ; il s'agit d'une instruction de requête limitée, suivie de deux paramètres, num1 est le numéro à partir duquel commencer la recherche, num2 est le nombre d'informations à rechercher. , Par exemple, je veux trouver trois éléments de données 2, 3 et 4, comme indiqué dans la figure ci-dessous

D'accord, commençons avec les étapes :
1. Créer 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 voulons limiter sur une page. Ceci peut être transmis en utilisant des 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, et num2 est pageSize. Après avoir compris cette relation, ce sera facile. à gérer. Le code est ci-dessous
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function news( $pageNum = 1, $pageSize = 3)
{
$array = array ();
$coon = mysqli_connect( "localhost" , "root" );
mysqli_select_db( $coon , "jereh" );
mysqli_set_charset( $coon , "utf8" );
$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 ;
}
|
Copier après la connexion
Dans le code ci-dessus, il convient de 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 écrits auparavant, il suffit de regarder le code
1 2 3 4 5 6 7 8 9 10 11 12 | 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;
}
|
Copier après la connexion
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 utiliser le get. méthode pour transférer des données sur cette page. Ensuite, lorsque nous actualisons la page, get n'obtiendra certainement pas les données, nous avons donc besoin que l'arithmétique trinoculaire soit utilisée, regardez le code
1 2 3 4 5 6 7 | <?php
@ $allNum = allNews();
@ $pageSize = 3;
@ $pageNum = empty ( $_GET [ "pageNum" ])?1: $_GET [ "pageNum" ];
@ $endPage = ceil ( $allNum / $pageSize );
@ $array = news( $pageNum , $pageSize );
?>
|
Copier après la connexion
4. Affichage sur la page
Si affiché sur la page, vous devez utiliser une boucle foreach , le code est simple, voir ci-dessous
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <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>
|
Copier après la connexion
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 la balise a, et l'adresse est "?pageNum = ... " Ce pageNum est défini par nous-mêmes. Puisqu'il est passé par get, à l'étape précédente nous avons utilisé $_GET pour accepter les paramètres, nous n'avons donc qu'à 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 doit être portée au fait qu'il ne doit y avoir aucun espace après "pageNum=". Le code est le suivant
1 2 3 4 | <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>
|
Copier après la connexion
Le code total est le suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <meta charset= "UTF-8" >
<title>分页</title>
<!--?php
function news( $pageNum = 1, $pageSize = 3)
{
$array = array ();
$coon = mysqli_connect("localhost", "root");
mysqli_select_db( $coon , "jereh");
mysqli_set_charset( $coon , "utf8");
$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 ;
}
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;
}
@ $allNum = allNews();
@ $pageSize = 3;
@ $pageNum = empty ( $_GET [ "pageNum" ])?1: $_GET [ "pageNum" ];
@ $endPage = ceil ( $allNum / $pageSize );
@ $array = news( $pageNum , $pageSize );
?-->
<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>
<p>
<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>
</p>
|
Copier après la connexion
L'effet est le suivant :

Résumé :
L'effet de pagination doit avoir des données à afficher. Par conséquent, nous devons effectuer certaines opérations de base de données. données dans la base de données, donc tout le monde doit opérer avec précaution !
Recommandations associées :
Exemples de principes de pagination en php
Comment implémenter la fonction de pagination de la table d'arrière-plan PHP
Comment écrire le code de pagination 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!