Programme de pagination du système de publication d'articles de développement PHP
Programme de pagination
Les grands principes de la pagination sont présentés dans la figure ci-dessous?:
Remarque?: prédéfinissez le nombre d'éléments de données à afficher sur chaque page (en supposant trois éléments de données sur une page) et calculez le nombre total de pages en fonction du nombre total de éléments de données dans la base de données
La page de sortie utilise le mot-clé limit de l'instruction de requête de la base de données. La première page contient les 3 éléments de données à partir du 0ème élément de données, la deuxième page contient les 3 éléments de données. à partir de la 3ème donnée, et la nième page ce sont les 3 données à partir du (n- 1) *3 données à partir de 3 données
Maintenant que le principe a été expliqué , jetons un coup d'?il au programme actuel. Les commentaires dans le programme sont très clairs. Vous pouvez observer et comprendre ligne par ligne
<?php //分頁功能 //連接數(shù)據(jù)庫(kù) require_once("connect.php"); $page = isset($_GET['page'])?intval($_GET['page']):1;//設(shè)置當(dāng)前頁數(shù),沒有則設(shè)置為1 $num=3;//每頁顯示3條數(shù)據(jù) /* 首先我們要獲取數(shù)據(jù)庫(kù)中到底有多少數(shù)據(jù),才能判斷具體要分多少頁,總頁數(shù) 具體的公式就是 總數(shù)據(jù)數(shù) 除以 每頁顯示的條數(shù),有余進(jìn)一 。 也就是說10/3=3.3333=4 有余數(shù)就要進(jìn)一。 */ $sql="select * from article"; $result=mysqli_query($conn,$sql); $total=mysqli_num_rows($result);//查詢數(shù)據(jù)的總條數(shù) $pagenum=ceil($total/$num);//獲得總頁數(shù) //假如傳入的頁數(shù)參數(shù)page 大于總頁數(shù) pagenum,則顯示錯(cuò)誤信息 if($page>$pagenum || $page == 0){ echo "<script>alert('沒有內(nèi)容了');history.go(-1);</script>"; exit; } $offset=($page-1)*$num; /* 獲取limit的第一個(gè)參數(shù)的值 offset ,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。 (傳入的頁數(shù)-1) * 每頁的數(shù)據(jù) 得到limit第一個(gè)參數(shù)的值*/ $sql="select * from article limit $offset,$num "; $info=mysqli_query($conn,$sql); //獲取相應(yīng)頁數(shù)所需要顯示的數(shù)據(jù) //獲取最新添加的前六條數(shù)據(jù) $sql_new="select id,title from article order by dateline desc limit 0,6 "; $info_title=mysqli_query($conn,$sql_new); ?>