Paging PHP memainkan peranan penting dalam pembangunan laman web, membantu kandungan halaman web untuk dipaparkan dalam halaman dan meningkatkan pengalaman pengguna. Editor PHP Xigua akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi halaman, menjadikan laman web lebih mudah untuk dilayari dan diurus. Dengan mempelajari artikel ini, pembaca boleh dengan mudah menguasai prinsip dan kaedah pelaksanaan paging PHP, dan menambah kemahiran dan inspirasi baharu kepada pembangunan laman web.
Kami juga akan menunjukkan cara lain untuk menambahkan fungsi navigasi Prev<strong class="keylink">io</strong>us
dan Next
dalam penomboran PHP. Kaedah ini hanya menambah kefungsian tambahan untuk menavigasi halaman yang sepadan dengan kaedah pertama. 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
Baris paging menggunakan LIMIT
klausa dan SELECT
statementLIMIT
clause dan SELECT
code> pernyataan untuk menentukan n hasil pertama kepada dipaparkan pada halaman. Kami boleh menyemak imbas halaman dengan memberikan nombor halaman dalam teg anchor
sebagai kaedah GET
. Dalam kaedah ini, kami mentakrifkan bilangan baris untuk dipaparkan setiap halaman dan mendapatkan semula semua baris daripada pangkalan data untuk mengira jumlah halaman yang diperlukan. Kita boleh menggunakan fungsi $_GET
array dan isset()
untuk mendapatkan nombor halaman yang diminta oleh pengguna. Sebagai contoh, buat pembolehubah $results_per_page
dan simpan 2
di dalamnya. Gunakan fungsi <strong class="keylink">Mysql</strong>i_num_rows()
untuk mencari bilangan baris dalam pangkalan data dan simpannya dalam pembolehubah $ number_of_results
. Gunakan fungsi ceil()
untuk menentukan jumlah halaman yang diperlukan untuk memaparkan baris. Bahagikan pembolehubah $number_of_results
dengan pembolehubah $results_per_page
di dalam fungsi ceil()
. Gunakan $_GET
pembolehubah superglobal dan fungsi isset()
untuk menyemak sama ada pembolehubah page
ditetapkan. Jika ia belum ditetapkan, tetapkan pembolehubah $page
kepada 1
. Jika pembolehubah ditetapkan, nilai diberikan kepada pembolehubah $page
. Tolak pembolehubah $page
daripada 1
dan darabkannya dengan pembolehubah $this_page_first_result
. Simpan operasi dalam pembolehubah $this_page_first_result
. Tulis pernyataan SQL
dengan klausa LIMIT
sebagai SELECT * FROM alpha LIMIT ' hasil paparan. Akhir sekali, buat gelung <code>for
untuk menggelung antara pembolehubah $page
dan $number_of_page
. Dalam gelung, teg echo
anchor
dan tetapkan nilai atribut href
kepada index.php?page'.$page. Tulis pembolehubah <code>$page
antara teg anchor
. Dalam contoh di bawah, jadual alpha
dalam pangkalan data mengandungi enam baris. Selepas melakukan paging, dua baris dipaparkan setiap halaman. Fungsi ceil()
menentukan jumlah halaman yang diperlukan untuk memaparkan satu baris. Pada mulanya, pembolehubah $page
tidak ditetapkan, jadi halaman bermula pada halaman 1. Pembolehubah $this_page_first_result
menentukan nombor halaman yang sedang digunakan oleh pengguna. Pembolehubah $this_page_first_result
mewakili baris pertama halaman. Pembolehubah $results_per_page
mewakili bilangan hasil setiap halaman. Bahagian output memaparkan halaman index.php
. Apabila halaman 2
diklik, ia mengeluarkan dua baris seterusnya daripada pangkalan data. 🎜🎜Contoh kod: 🎜<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>
<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 dalam PHP's penomboran kod> dan <code>Seterusnya
fungsi navigasi
Sebelumnya
dalam penomboran > dan Seterusnya
fungsi navigasi. Kita boleh menambah dan mengurangkan pembolehubah $page
sebanyak 1 untuk menunjuk ke halaman sebelumnya dan seterusnya. Kita boleh menggunakan pembolehubah kenaikan dan pengurangan dalam teg anchor
untuk melaksanakan fungsi Next
dan Previous
. 🎜🎜Sebagai contoh, buat dua pembolehubah, $prev
dan $next
. Tolak pembolehubah $page
dengan 1 dan tetapkan operasi kepada pembolehubah $prev
. Begitu juga, tambahkan 1 pada pembolehubah $page
dan tetapkan pada pembolehubah $next
. Gemakan teg anchor
yang menyatakan Previous
sebelum gelung for
nombor halaman. Berikan atribut href
bagi teg anchor
kepada index.php?page=' . Dengan cara yang sama, buat satu lagi untuk <code>Next
menggunakan pembolehubah $next
sebagai nilai page
dalam href
teg atribut anchor
. 🎜🎜Dalam bahagian output di bawah, ia menunjukkan halaman kedua. Klik Sebelumnya
untuk memasuki halaman pertama, klik Seterusnya
untuk memasuki halaman ketiga. 🎜🎜Kod sampel: 🎜rrreee 🎜Output: 🎜rrreeeAtas ialah kandungan terperinci Penomboran PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!