Heim > Artikel > Backend-Entwicklung > PHP-Paginierung
PHP-Paging spielt eine wichtige Rolle bei der Website-Entwicklung, da es dabei hilft, Webseiteninhalte auf Seiten anzuzeigen und die Benutzererfahrung zu verbessern. Der PHP-Editor Xigua stellt vor, wie man PHP zur Implementierung der Paging-Funktion verwendet, um das Durchsuchen und Verwalten der Website zu vereinfachen. Durch das Studium dieses Artikels können Leser die Prinzipien und Implementierungsmethoden von PHP-Paging leicht beherrschen und der Website-Entwicklung neue Fähigkeiten und Inspiration hinzufügen.
Wir werden auch eine andere Möglichkeit demonstrieren, die Navigationsfunktionen Prev<strong class="keylink">io</strong>us
und Next
in die PHP-Paginierung einzufügen. Diese Methode fügt der ersten Methode lediglich die zusätzliche Funktionalität der Navigation auf der entsprechenden Seite hinzu. 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
Zeilen mit LIMIT auslagern
-Klausel und SELECT
-AnweisungLIMIT
-Klausel und die SELECT
code>-Anweisung verwenden, um die ersten n Ergebnisse anzugeben auf der Seite angezeigt werden. Wir können die Seite durchsuchen, indem wir die Seitenzahl im anchor
-Tag als GET
-Methode angeben. Bei dieser Methode definieren wir die Anzahl der pro Seite anzuzeigenden Zeilen und rufen alle Zeilen aus der Datenbank ab, um die Gesamtzahl der erforderlichen Seiten zu berechnen. Wir können die Funktionen $_GET
array und isset()
verwenden, um die vom Benutzer angeforderte Seitenzahl abzurufen. Erstellen Sie beispielsweise eine Variable $results_per_page
und speichern Sie 2
darin. Verwenden Sie die Funktion <strong class="keylink">Mysql</strong>i_num_rows()
, um die Anzahl der Zeilen in der Datenbank zu ermitteln und zu speichern in der Variablen $ number_of_results
. Verwenden Sie die Funktion ceil()
, um die Gesamtzahl der Seiten zu bestimmen, die zum Anzeigen von Zeilen erforderlich sind. Teilen Sie die Variable $number_of_results
durch die Variable $results_per_page
innerhalb der Funktion ceil()
. Verwenden Sie die superglobale Variable $_GET
und die Funktion isset()
, um zu überprüfen, ob die Variable page
gesetzt ist. Wenn es noch nicht festgelegt ist, setzen Sie die Variable $page
auf 1
. Wenn die Variable gesetzt ist, wird der Wert der Variablen $page
zugewiesen. Subtrahieren Sie die Variable $page
von 1
und multiplizieren Sie sie mit der Variablen $this_page_first_result
. Speichern Sie den Vorgang in der Variablen $this_page_first_result
. Schreiben Sie eine SQL
-Anweisung mit einer LIMIT
-Klausel als SELECT * FROM alpha LIMIT ',' $results_per_page Ergebnisse anzeigen. Erstellen Sie abschließend eine <code>for
-Schleife, um eine Schleife zwischen der Variablen $page
und $number_of_page
durchzuführen. Innerhalb der Schleife setzen Sie das echo
anchor
-Tag und setzen den Wert des href
-Attributs auf index.php?page'.$page. Schreiben Sie die Variable <code>$page
zwischen die Tags anchor
. Im folgenden Beispiel enthält die alpha
-Tabelle in der Datenbank sechs Zeilen. Nach dem Durchblättern werden pro Seite zwei Zeilen angezeigt. Die Funktion ceil()
bestimmt die Gesamtzahl der Seiten, die zum Anzeigen einer Zeile erforderlich sind. Anfangs ist die Variable $page
nicht gesetzt, sodass die Seite auf Seite 1 beginnt. Die Variable $this_page_first_result
bestimmt die Seitennummer, auf der sich der Benutzer gerade befindet. Die Variable $this_page_first_result
repräsentiert die erste Zeile der Seite. Die Variable $results_per_page
stellt die Anzahl der Ergebnisse pro Seite dar. Im Ausgabebereich wird die Seite index.php
angezeigt. Wenn auf Seite 2
geklickt wird, werden die nächsten beiden Zeilen aus der Datenbank ausgegeben. 🎜🎜Beispielcode: 🎜<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>🎜Ausgabe: 🎜
<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>
Previous in der Paginierung von PHP hinzu code> und <code>Next
Navigationsfunktionalität
Previous
in der Paginierung > und Next bereitzustellen
Navigationsfunktionen. Wir können die Variable $page
um 1 erhöhen und verringern, um auf die vorherige und nächste Seite zu verweisen. Wir können Inkrementierungs- und Dekrementierungsvariablen im anchor
-Tag verwenden, um die Funktionen Next
und Previous
zu implementieren. 🎜🎜Erstellen Sie beispielsweise zwei Variablen, $prev
und $next
. Subtrahieren Sie die Variable $page
um 1 und weisen Sie die Operation der Variablen $prev
zu. Fügen Sie auf ähnliche Weise 1 zur Variablen $page
hinzu und weisen Sie sie der Variablen $next
zu. Gibt ein anchor
-Tag mit der Aufschrift Previous
vor der for
-Schleife der Seitenzahl wieder. Weisen Sie das Attribut href
des Tags anchor
zu index.php?page=' $prev .
zu. Erstellen Sie auf die gleiche Weise eine weitere für Next
, indem Sie die Variable $next
als Wert von page
im href
verwenden > Attribut Anker
-Tag. 🎜🎜Im Ausgabebereich unten wird die zweite Seite angezeigt. Klicken Sie auf Zurück
, um zur ersten Seite zu gelangen, und klicken Sie auf Weiter
, um zur dritten Seite zu gelangen. 🎜🎜Beispielcode: 🎜rrreee 🎜Ausgabe: 🎜rrreeeDas obige ist der detaillierte Inhalt vonPHP-Paginierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!