PHP développe un livre d'or simple avec une fonction d'affichage de message de pagination
Pour afficher tous les commentaires des utilisateurs sur la page et les afficher via la pagination.
L'idée générale de la pagination est la suivante : déterminez d'abord le nombre de messages qui doivent être affichés sur chaque page, puis divisez le nombre total de messages par le nombre de messages affichés sur chaque page pour obtenir le total nombre de pages S'il ne peut pas être divisé également, le reste devient une page distincte, le nombre total de pages +1.
Continuez à utiliser la base de données de type LyDB définie dans la section précédente.
Ici est configuré pour afficher 3 éléments de données par page
<?php $page_size=3; ?>
Utilisez une fonction publique pour mettre le numéro page_size affiché sur chaque page, le nombre de messages ly_count et le nombre total de pages page_count dans un tableau
<?php class LyDb{ //....省略 public function select_page_info(){ $sql = "select count(*) as pagecount from ly"; $query = mysqli_query($this->link,$sql); $row = mysqli_fetch_assoc($query); $ly_count=$row["pagecount"]; $page_count=($ly_count%$this->page_size==0)?($ly_count/$this->page_size):($ly_count/$this->page_size+1); $page_info=array("ly_count"=> $ly_count,"page_count"=>(int)$page_count,"page_size"=>$this->page_size); return $page_info; } //......省略 } ?>
Définissez la page actuelle $page_no
via une fonction publique Lorsqu'il est jugé que la page actuelle est inférieure à 1, continuez à afficher. la première page Lorsque la page actuelle est supérieure au nombre total de pages obtenues, la dernière page sera affichée Page
Déterminer la première et la dernière pages
<?php lass LyDb{ //....省略 public function select_page_result(&$page_no){ $page_info=$this->select_page_info(); if(!isset($page_no))$page_no=1; else if($page_no<1)$page_no=1; else if($page_no>$page_info["page_count"])$page_no=$page_info["page_count"]; $first=($page_no-1)*$this->page_size; $sql="select * from ly order by id desc limit $first,$this->page_size "; $query=mysqli_query($this->link,$sql); $page_result=array("page_data"=>$query,"page_info"=>$page_info,"page_no"=>$page_no); return $page_result; } //......省略 } ?>
Ajouter une fonction de pagination au. page d'accueil
<div class="pagination" > 当前第<?php echo $page_result["page_no"];?>页/ 共<?php echo $page_result["page_info"]["page_count"];?>页/ 每页显示<?php echo $page_result["page_info"]["page_size"]; ?>条/ 共<?php echo $page_result["page_info"]["ly_count"]; ?>条留言 <a href="index.php?pn=<?php echo ($page_result['page_no']-1);?>">上一页</a> <a href="index.php?pn=<?php echo ($page_result['page_no']+1);?>">下一页</a> <a href="index.php?pn=1">首页</a> <a href="index.php?pn=<?php echo ($page_result['page_info']['page_count']);?>">尾页</a> </div>