Maison > Article > développement back-end > Pagination PHP
La pagination PHP joue un rôle important dans le développement de sites Web, en aidant le contenu des pages Web à être affiché dans les pages et en améliorant l'expérience utilisateur. L'éditeur PHP Xigua présentera comment utiliser PHP pour implémenter la fonction de pagination, rendant le site Web plus facile à parcourir et à gérer. En étudiant cet article, les lecteurs peuvent facilement maîtriser les principes et les méthodes de mise en œuvre de la pagination PHP, et ajouter de nouvelles compétences et inspirations au développement de sites Web.
Nous démontrerons également une autre façon d'ajouter les fonctionnalités de navigation Prev<strong class="keylink">io</strong>us
et Suivant
dans la pagination PHP. Cette méthode ajoute uniquement la fonctionnalité supplémentaire de navigation dans la page correspondante à la première méthode. Prev<strong class="keylink">io</strong>us
和 Next
导航功能的方法。此方法仅添加了将相应页面导航到第一种方法的附加功能。
SQL
中使用 LIMIT
子句和 SELECT
语句对行进行分页我们可以使用 LIMIT
子句和 SELECT
语句来指定要在页面上显示的前 n 个结果。我们可以在 anchor
标签中提供页码作为 GET
方法来浏览页面。在此方法中,我们定义每页要显示的行数,并从数据库中检索所有行以计算所需的总页数。我们可以使用 $_GET
数组和 isset()
函数来获取用户请求的页码。
例如,创建一个变量 $results_per_page
并在其中存储 2
。使用 <strong class="keylink">Mysql</strong>i_num_rows()
函数查找数据库中的行数并存储在 $number_of_results
变量中。使用 ceil()
函数来确定显示行所需的总页数。将 $number_of_results
变量除以 ceil()
函数内的 $results_per_page
变量。使用 $_GET
超全局变量和 isset()
函数来检查 page
变量是否已设置。如果尚未设置,请将 $page
变量设置为 1
。如果已设置变量,则将值分配给 $page
变量。用 1
减去 $page
变量并将其乘以 $this_page_first_result
变量。将操作存储在变量 $this_page_first_result
中。编写一个带有 LIMIT
子句的 SQL
语句为 SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page.
运行查询并显示结果。最后,创建一个 for
循环以在 $page
变量和 $number_of_page
之间循环。在循环内,echo
anchor
标签并将 href
属性的值设置为 index.php?page'.$page
。在 anchor
标签之间写入 $page
变量。
在下面的示例中,数据库中的 alpha
表包含六行。执行分页后,每页显示两行。ceil()
函数确定显示行所需的总页数。最初,$page
变量未设置,因此页面从第 1 页开始。$this_page_first_result
变量确定用户当前所在的页码。变量 $this_page_first_result
表示页面的第一行。变量 $results_per_page
表示每页的结果数。输出部分显示 index.php
页面。当点击页面 2
时,它会从数据库中输出接下来的两行。
示例代码:
<code><code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#408080;font-style:italic">#php 7.x </span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"></span><span style="color:#666"><?</span>php </span></span><span style="display:flex;"><span><span style="color:#19177c">$number_of_pages</span> <span style="color:#666">=</span> ceil(<span style="color:#19177c">$number_of_results</span><span style="color:#666">/</span><span style="color:#19177c">$results_per_page</span>); </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> (<span style="color:#666">!</span>isset(<span style="color:#19177c">$_GET</span>[<span style="color:#ba2121">'page'</span>])) { </span></span><span style="display:flex;"><span><span style="color:#19177c">$page</span> <span style="color:#666">=</span> <span style="color:#666">1</span>; </span></span><span style="display:flex;"><span>} <span style="color:#008000;font-weight:bold">else</span> { </span></span><span style="display:flex;"><span><span style="color:#19177c">$page</span> <span style="color:#666">=</span> <span style="color:#19177c">$_GET</span>[<span style="color:#ba2121">'page'</span>]; </span></span><span style="display:flex;"><span>} </span></span><span style="display:flex;"><span><span style="color:#19177c">$this_page_first_result</span> <span style="color:#666">=</span> (<span style="color:#19177c">$page</span><span style="color:#666">-</span><span style="color:#666">1</span>)<span style="color:#666">*</span><span style="color:#19177c">$results_per_page</span>; </span></span><span style="display:flex;"><span><span style="color:#19177c">$sql</span><span style="color:#666">=</span><span style="color:#ba2121">'SELECT * FROM alpha LIMIT '</span> <span style="color:#666">.</span> <span style="color:#19177c">$this_page_first_result</span> <span style="color:#666">.</span> <span style="color:#ba2121">','</span> <span style="color:#666">.</span> <span style="color:#19177c">$results_per_page</span>; </span></span><span style="display:flex;"><span><span style="color:#19177c">$result</span> <span style="color:#666">=</span> <strong class="keylink">mysql</strong>i_query(<span style="color:#19177c">$con</span>, <span style="color:#19177c">$sql</span>); </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">while</span>(<span style="color:#19177c">$row</span> <span style="color:#666">=</span> mysqli_fetch_array(<span style="color:#19177c">$result</span>)) { </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#19177c">$row</span>[<span style="color:#ba2121">'id'</span>] <span style="color:#666">.</span> <span style="color:#ba2121">' '</span> <span style="color:#666">.</span> <span style="color:#19177c">$row</span>[<span style="color:#ba2121">'value'</span>]<span style="color:#666">.</span> <span style="color:#ba2121">'<br>'</span>; </span></span><span style="display:flex;"><span>} </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">for</span> (<span style="color:#19177c">$page</span><span style="color:#666">=</span><span style="color:#666">1</span>;<span style="color:#19177c">$page</span><span style="color:#666"><=</span><span style="color:#19177c">$number_of_pages</span>;<span style="color:#19177c">$page</span><span style="color:#666">++</span>) { </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">'<a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'">'</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'</a> '</span>; </span></span><span style="display:flex;"><span>} </span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span > </span></span></span></code></code>
输出:
<code><code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>1 A </span></span><span style="display:flex;"><span>2 B </span></span><span style="display:flex;"><span>1 2 3 </span></span></code></code>
Previous
和 Next
导航功能我们可以在第一种方法的代码示例中添加一些额外的代码片段,以在分页中提供 Previous
和 Next
导航功能。我们可以将 $page
变量递增和递减 1 以指向上一页和下一页。我们可以使用 anchor
标签中的递增和递减变量来实现 Next
和 Previous
功能。
例如,创建两个变量,$prev
和 $next
。用 1 减去 $page
变量并将操作分配给 $prev
变量。类似地,将 1 添加到 $page
变量并将其分配给 $next
变量。在页码的 for
循环之前回显一个 anchor
标签,上面写着 Previous
。将 anchor
标签的 href
属性赋值为 index.php?page=' . $prev .
。以同样的方式,使用 $next
变量作为 href
属性中 page
的值,为 Next
创建另一个 anchor
标记。
在下面的输出部分,它显示了第二页。单击 Previous
进入第一页,单击 Next
SQL
Pagination des lignes en utilisant LIMIT Clause
et instruction SELECT
LIMIT
et l'instruction SELECT
pour spécifier les n premiers résultats à être affiché sur la page. Nous pouvons parcourir la page en fournissant le numéro de page dans la balise anchor
comme méthode GET
. Dans cette méthode, nous définissons le nombre de lignes à afficher par page et récupérons toutes les lignes de la base de données pour calculer le nombre total de pages requises. Nous pouvons utiliser les fonctions $_GET
array et isset()
pour obtenir le numéro de page demandé par l'utilisateur. Par exemple, créez une variable $results_per_page
et stockez-y 2
. Utilisez la fonction <strong class="keylink">Mysql</strong>i_num_rows()
pour trouver le nombre de lignes dans la base de données et stockez-le dans la variable $ number_of_results
. Utilisez la fonction ceil()
pour déterminer le nombre total de pages requises pour afficher les lignes. Divisez la variable $number_of_results
par la variable $results_per_page
à l'intérieur de la fonction ceil()
. Utilisez la variable superglobale $_GET
et la fonction isset()
pour vérifier si la variable page
est définie. Si ce n'est pas déjà fait, définissez la variable $page
sur 1
. Si la variable est définie, la valeur est affectée à la variable $page
. Soustrayez la variable $page
de 1
et multipliez-la par la variable $this_page_first_result
. Stockez l'opération dans la variable $this_page_first_result
. Écrivez une instruction SQL
avec une clause LIMIT
sous la forme SELECT * FROM alpha LIMIT ' ' $this_page_first_result ',' .
Exécutez la requête. afficher les résultats. Enfin, créez une boucle for
pour faire une boucle entre la variable $page
et $number_of_page
. Dans la boucle, ajoutez la balise echo
anchor
et définissez la valeur de l'attribut href
sur index.php?page'.$page. Écrivez la variable <code>$page
entre les balises anchor
. Dans l'exemple ci-dessous, la table alpha
de la base de données contient six lignes. Après avoir effectué la pagination, deux lignes sont affichées par page. La fonction ceil()
détermine le nombre total de pages nécessaires pour afficher une ligne. Initialement, la variable $page
n'est pas définie, donc la page commence à la page 1. La variable $this_page_first_result
détermine le numéro de page sur lequel se trouve actuellement l'utilisateur. La variable $this_page_first_result
représente la première ligne de la page. La variable $results_per_page
représente le nombre de résultats par page. La section de sortie affiche la page index.php
. Lorsque l'on clique sur la page 2
, les deux lignes suivantes de la base de données sont affichées. 🎜🎜Exemple de code : 🎜<code><code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># php 7.x </span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"></span><span style="color:#666"><?</span>php </span></span><span style="display:flex;"><span><span style="color:#19177c">$prev</span> <span style="color:#666">=</span> <span style="color:#19177c">$page</span> <span style="color:#666">-</span><span style="color:#666">1</span>; </span></span><span style="display:flex;"><span><span style="color:#19177c">$next</span> <span style="color:#666">=</span> <span style="color:#19177c">$page</span> <span style="color:#666">+</span><span style="color:#666">1</span>; </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">' <a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$prev</span> <span style="color:#666">.</span> <span style="color:#ba2121">'"> Previous </a> '</span>; </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">for</span> (<span style="color:#19177c">$page</span><span style="color:#666">=</span><span style="color:#666">1</span>;<span style="color:#19177c">$page</span><span style="color:#666"><=</span><span style="color:#19177c">$number_of_pages</span>;<span style="color:#19177c">$page</span><span style="color:#666">++</span>) { </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">'<a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'">'</span> <span style="color:#666">.</span> <span style="color:#19177c">$page</span> <span style="color:#666">.</span> <span style="color:#ba2121">'</a> '</span>; </span></span><span style="display:flex;"><span>} </span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">' <a href="index.php?page='</span> <span style="color:#666">.</span> <span style="color:#19177c">$next</span> <span style="color:#666">.</span> <span style="color:#ba2121">'"> Next </a> '</span>; </span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span > </span></span></span></code></code>🎜Sortie : 🎜
<code><code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>3 C </span></span><span style="display:flex;"><span>4 D </span></span><span style="display:flex;"><span>Previous 1 2 3 Next </span></span></code></code>
Précédent dans la pagination de PHP code> et <code>Suivant
fonctionnalités de navigation
Précédent
dans la pagination > et Suivant
fonctions de navigation. Nous pouvons incrémenter et décrémenter la variable $page
de 1 pour pointer vers les pages précédentes et suivantes. Nous pouvons utiliser des variables d'incrémentation et de décrémentation dans la balise anchor
pour implémenter les fonctions Suivant
et Précédent
. 🎜🎜Par exemple, créez deux variables, $prev
et $next
. Soustrayez la variable $page
de 1 et affectez l'opération à la variable $prev
. De même, ajoutez 1 à la variable $page
et affectez-la à la variable $next
. Fait écho à une balise anchor
qui dit Précédent
avant la boucle for
du numéro de page. Attribuez l'attribut href
de la balise anchor
à index.php?page=' $prev .
. De la même manière, créez-en un autre pour Suivant
en utilisant la variable $next
comme valeur de page
dans le href
attribut la balise anchor
. 🎜🎜Dans la section de sortie ci-dessous, la deuxième page est affichée. Cliquez sur Précédent
pour accéder à la première page, cliquez sur Suivant
pour accéder à la troisième page. 🎜🎜Exemple de code : 🎜rrreee 🎜Sortie : 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!