Introduction à la fonction de pagination simple du développement d'un système simple de communiqués de presse avec PHP
L'affichage de pagination est une méthode très courante de navigation et d'affichage de grandes quantités de données, et est l'un des événements les plus couramment traités dans la programmation Web.
L'affichage dit de pagination signifie que le résultat défini dans la base de données est artificiellement divisé en sections pour l'affichage. Deux paramètres initiaux sont requis ici :
Le nombre d'actualités affichées sur. chaque page : $limitNews
Obtenir le nombre actuel de pages : $page
Puisque le langage informatique commence à récupérer les enregistrements à partir de 0 par défaut
Si le nombre affiché par page est fixé à 3, $limitNews = 3,
alors la première page $page = 1 affichera trois enregistrements de 0, 1, 2
La deuxième page $page = 2 affichera trois enregistrements 3, 4, 5
sur la troisième page $page = 3 affichera trois enregistrements 6, 7, 8
et ainsi de suite. . . . . . . . .
Définissez un paramètre $limitFrom à partir de quelle donnée commencer la lecture
À partir des règles ci-dessus, nous pouvons obtenir :
$limitFrom = ($page - 1 ) * $limitNews;
obtiendra les données à partir du 0ème, du 3ème et du 6ème élément respectivement.
Étape suivante, nous devons nous connecter à la base de données et lire les données
Nous utilisons toujours le test du nom de la base de données et le nouveau nom de la table :
<?php $link = mysqli_connect('localhost','uesrname','password','test'); $sql = "select * from new"; // select * from表示获取全部字段的值 $sqlCount = "select count(*) from new"; //count(*)统计的是结果集的总条数 ?>
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, un autre problème se pose s'il y a 10 enregistrements d'actualités et 3 enregistrements. sont affichés sur chaque page, puis Que faire du reste ?
Nous devons utiliser le % reste pour porter le 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个页面 } ?>
Autres paramètresPage précédente $prev, page suivante $next ;
Dans la fonction de pagination, vous cliquez souvent sur "Page précédente" et cliquez sur "Page suivante" pour sauter
Laissez-moi d'abord parler de l'idée d'implémenter le code PHP fonction :
La page précédente $prev est la page actuelle $page -1. Passer à la page précédente étape par étape. Lorsque la page actuelle $page est la première page, passer à la page 0. provoque évidemment des bugs.
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. .
$prev = ($page - 1 <= 0 )?1:$page-1;
Page suivante $next, qui est la La page actuelle $page -1 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
est similaire à la page précédente. set Réglez-le pour afficher la dernière page.
$next = ($page + 1 > $countPage)?$countPage:$page+1;
//Le numéro de page actuel doit être supérieur à Lorsque le nombre total de pages est affiché, la page actuelle est affichée.
Le code de la page est affiché ci-dessous :
<!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>
Remarque : Le code ci-dessus utilise une boucle for pour implémenter 1,2,3. . . . effet de page.