Comment implémenter la fonction de pagination

Dans le chapitre précédent, nous avons terminé la modification de la page HTML d'affichage du contenu en arrière-plan. Ici, nous devons interroger les données de la base de données via des instructions SQL et les afficher dans le tableau. La fonction de pagination est utilisée ici pour afficher. Après tout, le nombre affiché sur la première page est limité.

L'affichage dit de pagination consiste à diviser artificiellement le résultat défini dans la base de données en sections à afficher. Deux paramètres initiaux sont requis ici :

Nombre d'affichages par page : $limitNews

Obtenir le numéro de score actuel. de pages : $page

Puisque le langage informatique commence à obtenir des enregistrements à partir de 0 par défaut

Si vous définissez le nombre d'affichages par page sur 3, $limitNews = 3,

alors la première page $page = 1 sera afficher 0, 1, 2 trois enregistrements

La deuxième page $page = 2 affichera trois enregistrements 3, 4, 5

La troisième page $page = 3 affichera trois enregistrements 6, 7, 8

et ainsi de suite. . . . . . . . .

Définissez un paramètre $limitFrom à partir duquel les données doivent commencer la lecture

À partir des règles ci-dessus, nous pouvons obtenir :

$limitFrom = ($page - 1) * $limitNews ;

Il commencera à partir de la 0ème et de la 3ème donnée respectivement, commencez à obtenir des données à partir de 6 éléments.

Obtenez le nombre total de nouvelles dans la table de base de données via l'instruction de requête $countNews

<?php
$retQuery = mysqli_query($link, $sqlCount);  //查询数量sql语句
$retCount = mysqli_fetch_array($retQuery);   //获取数量
$count = $retCount[0]?$retCount[0]:0;   //判断获取的新闻数量
$countNews = $count;
?>

Ici, vous devez donner un autre paramètre $countPage Combien de pages sont affichées au total

Maintenant, il y a un autre problème s'il y en a 10. les enregistrements d'actualités, chaque page 3 enregistrements sont affichés, que faire du reste ?

Il faut utiliser le % reste pour porter un jugement :

<?php
$countPage = $countNews%$limitNews;   //求余数获取分页数量能否被除尽
if(($countPage) > 0) {  //获取的页数有余
  $countPage = ceil($countNews/$limitNews);  
  
// ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 10个新闻每个页面显示3个,成3个页面,剩余1个单独成1个页面,这样总共有4个页面
} else {
  $countPage = $countNews/$limitNews;  //如果是9个新闻每个页面显示3个,成3个页面
}
?>

Les autres paramètres sont $prev pour la page précédente et $next pour la page suivante

Dans la fonction de pagination, il y a souvent des clics sur "page précédente" ; et "page suivante" "Une page" pour sauter

Permettez-moi d'abord de parler de l'idée d'implémenter la fonction de code PHP :

La page précédente $prev est la page actuelle $page -1 passer à l'étape de la page précédente par étape, lorsque la page actuelle $page est la première page Lorsque la page actuelle $page est la première page, cliquez sur "Page précédente" pour la définir pour qu'elle s'affiche comme première page et ne plus avancer.

<?php
  $prev = ($page - 1 <= 0 )?1:$page-1;
?>

La page suivante $next est la page actuelle $page -1 et passe à la page suivante étape par étape. Le problème est que lorsque $page est la dernière page, cliquez sur "page suivante" puis revenez en arrière

. Suivre Semblable à la page précédente, nous la paramétrons pour afficher la dernière page.

<?php
  $next = ($page + 1 > $countPage)?$countPage:$page+1;
?>

//Lorsque le numéro de page actuel est supérieur au numéro de page total, la page actuelle sera affichée.

<!DOCTYPE html>
<html>
<head>  
<meta charset=utf8">  
<title>分表页</title>
</head>
<body>
   <div>
         <a href="?page=<?php echo $prev;?>">|上一页</a>         
         <?php for($i=1; $i<=$countPage; $i++):?>         
         <a href="?page=<?php echo $i;?>"><?php echo $i;?></a>         
         <?php endfor;?>         
         <a href="?page=<?php echo $next;?>">|下一页</a>
   </div>
</body>
</html>

Les amis peuvent ajouter quelques données de test à la base de données

liste

table pour tester la fonction de pagination. Utilisez l'instruction while pour boucler les données dans la base de données et les afficher dans le fichier list.php :

<?php while($rows=mysqli_fetch_array($result)):?>
<tr>
  <td style="text-align:left; padding-left:20px;">
  <input type="checkbox" name="id[]" value="<?php echo $rows["id"]?>" />
  <?php echo $rows["id"]?></td>
  <td><input type="text" name="sort[1]" value="1" style="width:50px; text-align:center; border:1px solid #ddd; padding:7px 0;" /></td>
  <td width="10%">
      <video width="200" height="150" controls="controls" >
          <source src="<?php echo $rows["video"]?>" type="video/mp4">
      </video>
  </td>
  <td><?php echo $rows["title"]?></td>
  <td><font color="#00CC99">首页</font></td>
  <td><?php echo $rows["cate_name"]?></td>
  <td><?php echo date("Y-m-d H:i:s",$rows["time"])?></td>
  <td>
      <div class="button-group">
          <a class="button border-main" href="#"><span class="icon-edit"></span>修 改</a>
          <a class="button border-red" href="#" onclick="return del(1,1,1)">
              <span class="icon-trash-o"></span>删 除
          </a>
      </div>
  </td>
</tr>
<?php endwhile;?>

Remarque : La fonction date est utilisée ici pour convertir l'horodatage et l'afficher comme l'heure d'addition normale.

<?php echo date("Y-m-d H:i:s",$rows["time"])?>

Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset=utf8"> <title>分表页</title> </head> <body> <div> <a href="?page=<?php echo $prev;?>">|上一页</a> <?php for($i=1; $i<=$countPage; $i++):?> <a href="?page=<?php echo $i;?>"><?php echo $i;?></a> <?php endfor;?> <a href="?page=<?php echo $next;?>">|下一页</a> </div> </body> </html>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel