recherche
  • Se connecter
  • S'inscrire
Réinitialisation du mot de passe réussie

Suivez les projets qui vous intéressent et découvrez les dernières actualités les concernant.

Fonction de pagination pour le développement des actualités

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>


nouveau fichier
<?php $link = mysqli_connect('localhost','usermane','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("连接失败:".mysqli_connect_error()); } $page = isset($_GET['page'])?$_GET['page']:1;//获取当前分页数 $limitNews = 5; //每页显示新闻数量 $countNews = ""; //总共有多少条新闻 $countPage = ""; //一共有多少页数 $limitFrom = ($page - 1) * $limitPage;//从第几条数据开始读记录 //每页显示5个 //page = l limit 0 //page = 2 limit 5 //page = 3 limit 11 $sql = "select * from new"; $sqlCount = "select count(*) from new"; $retQuery = mysqli_query($link, $sqlCount); //查询数量sql语句 $retCount = mysqli_fetch_array($retQuery); //获取数量 $count = $retCount[0]?$retCount[0]:0; //判断获取的新闻数量 $countNews = $count; $countPage = $countNews%$limitPage; //求余数获取分页数量能否被除尽 if(($countPage) > 0) { //获取的页数有余 $countPage = ceil($countNews/$limitPage); // ceil() 函数向上舍入为最接近的整数,除不尽则取整数+1页, 100个新闻每个页面显示11个,成9个页面,剩余1个成1个页面 } else { $countPage = $countNews/$limitPage; } $prev = ($page - 1 <= 0 )?1:$page-1; //上一页 $next = ($page + 1 > $countPage)?$countPage:$page+1; //下一页 $result = mysqli_query($link, $sql); ?> <!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>
Réinitialiser le code
Opération automatique
soumettre
Aperçu Clear