La pagination est une fonction utilisée par presque tous les sites Web, car s'il y a beaucoup de contenu et qu'aucune pagination n'est utilisée, l'affichage de la page sera très long, ce qui sera très difficile à utiliser et à trouver, alors parlons-en très pratique fonction.
L'idée générale de la pagination :
La pagination consiste à diviser toutes les informations de la base de données en plusieurs segments par un nombre fixe, il faut donc ici deux données :
Le nombre d'informations affichées sur chaque page $limitPage
Obtenez le nombre de pagination actuel $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 5, $limitPage = 5,
puis le premier la page $page = 1 affichera 0, 1, 2, 3, 4 trois enregistrements
La deuxième page $page = 2 affichera 5, 6, 7, 8, 9, 10 Trois enregistrements
La troisième page $page = 3 affichera 11, 12, 13, 14, 15 trois enregistrements
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) * $limitPage;
Il commencera respectivement à partir du 0 et du 5 , 11 éléments commencent à obtenir des données.
L'étape suivante consiste à se connecter à la base de données et à compter le nombre total de nouvelles :
<?php $link = mysqli_connect('localhost','uesrname','password','news'); $sql = "select * from new"; // select * from表示获取全部字段的值 $sqlCount = "select count(*) from new"; //count(*)是计算数据总的条数 $retQuery = mysqli_query($link, $sqlCount); //查询数量sql语句 $retCount = mysqli_fetch_array($retQuery); //获取数量 $count = $retCount[0]?$retCount[0]:0; //判断获取的新闻数量 $countNews = $count; ?>
Ensuite, nous donnons une variable $countPage pour indiquer combien de pages sont affichées au total
Peut-être rencontrerons-nous ceci dans une situation longue, s'il y a 100 informations, on nous donne que 11 sont affichées sur chaque page, comment gérer la 1 pièce restante,
Ensuite il faut utiliser % pour faire un reste pour juger :
<?php $countPage = $countNews%$limitPage; //求余数获取分页数量能否被除尽 if(($countPage) > 0) { //获取的页数有余 $countPage = ceil($countNews/$limitPage); // ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 100个新闻每个页面显示11个,成9个页面,剩余1个单独成1个页面,这样总共有10个页面 } else { $countPage = $countNews/$limitPage; //如果是10个新闻每个页面显示2个,成5个页面 } ?>
Autres paramètres Page précédente $prev, page suivante $next
Dans la fonction de pagination, il y a souvent des clics sur "page précédente" et "page suivante" pour sauter
Laissez-moi parler de l'idée de implémentez d'abord la fonction de code PHP :
Page précédente $prev, qui est la page actuelle $page -1, passe à la page précédente étape par étape. Lorsque la page actuelle $page est la première page, le saut vers l'avant sera la page 0. . Cela provoquera évidemment un bug,
Ici, nous devons lui donner un paramètre Lorsque la page actuelle $page est la première page, cliquez sur "Page précédente" pour qu'elle soit affichée comme première page et ne plus avancer. .
$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" pour revenir en arrière
Semblable à la page précédente, nous la configurons pour afficher la dernière page.
$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 est 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>