Nous vous avions parlé de la fonction de création de la liste des actualités dans le dernier cours, nous avions une fonction de pagination sous la page de la liste des actualités ! Aujourd’hui, nous allons donc vous présenter le processus de production de mise en œuvre de la pagination !
On crée d'abord un fichier php page.php, dans ce fichier on met le code pour faire la pagination !
La première étape : idem, il suffit de se connecter à la base de données !
// 显示所有的错误 error_reporting(E_ALL & ~E_NOTICE ); // 连接mysql数据库 $link = mysqli_connect('localhost','root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8");
La deuxième étape : pour implémenter la fonction de pagination, nous devons interroger quelle table de données dans quelle liste nous paginons les actualités, notre instruction SQL doit donc vérifier la table des actualités
// 查询新闻表中的数据 $sql = "select * from new where 1 "; // 查询语句 $sql_count = "select count(*) as amount from new where 1 "; // 统计总记录数 $sql .= "order by id asc";#. 🎜🎜#L'étape suivante consiste à obtenir le nombre total d'enregistrements :
// 获取总记录条数 $result_amount = mysqli_query($link, $sql_count); $arr_amount = mysqli_fetch_array(mysqli_query($link, $sql_count), MYSQL_ASSOC); // 总记录条数 $amount = $arr_amount['amount'];Ensuite, définissez le nombre total de pages et le nombre total de pages
// 每页的记录条数 $page_size = 4; // 总页码 $max_page = ceil( $amount / $page_size );Tout le monde sait qu'il y a un algorithme de formule pour la pagination, nous utilisons simplement cette formule pour calculer la page précédente, la page suivante et la dernière page !
// 获取当前页码 $page = intval($_GET['page']); // 获取page值,并转成int if( $page <= 0 || $page > $max_page){ // 如果page值小于0,或是大于最大页码 $page = 1; } // 上一页 $pre_page = $page -1; if( $pre_page < 1 ){ // 如果上一页小于1 $pre_page = 1; } // 下一页 $next_page = $page + 1; if( $next_page > $max_page ){ // 如果下一页大于最大页码 $next_page = $max_page; } // 分页计算, 计算分页的offset $offset = ($page - 1 ) * $page_size; $sql .= " limit $offset, $page_size ";Ici, nous avons fini d'écrire le code de pagination, puis d'introduire ce fichier de pagination sur la page de liste d'actualités
<?php include_once "../common/page.php"; ?>Enfin, trouvez la position de pagination sous la page de liste d'actualités et sortez Pagination
<div class="pagelist"> <a href="new_list.php">首页</a> <?php if( $page > 1 ){ ?> <a href="new_list.php?page=<?php echo $pre_page;?>">上一页</a> <? } if( $page < $max_page ){ ?> <a href="new_list.php?page=<?php echo $next_page;?>">下一页</a> <? } ?> <a href="new_list.php?page=<?php echo $max_page;?>">末页</a> / 总页码 <font color="red"><?php echo $max_page;?></font>页 当前页码 <font color="red"><?php echo $page;?></font>页 </div>OK ! La pagination est terminée ! Remarque : le mien peut être un peu gênant ici. Vous pouvez également télécharger la classe de pagination depuis le site Web et l'appeler directement ! Mais vous devez connaître le principe de mise en œuvre de la pagination~