


Bagaimana untuk Menjana Pautan Penomboran secara Dinamik dalam MySQL Menggunakan LIMIT dan OFFSET?
Dec 05, 2024 pm 03:17 PMPenomboran menggunakan MySQL LIMIT, OFFSET: Penciptaan Halaman Dinamik
Penomboran membenarkan pengguna menavigasi set data yang besar dengan memaparkan bilangan item yang terhad setiap halaman . Dengan menggunakan klausa MySQL LIMIT dan OFFSET, kami boleh mendapatkan semula halaman data tertentu dengan cekap.
Walau bagaimanapun, adalah tidak cekap untuk membuat halaman berasingan untuk setiap nombor halaman yang berpotensi. Sebaliknya, kita boleh menentukan bilangan halaman secara dinamik berdasarkan jumlah bilangan baris dalam pangkalan data.
Menentukan Bilangan Halaman
Untuk mencari jumlah bilangan halaman, kita mesti terlebih dahulu mengira jumlah bilangan baris dalam jadual menggunakan pertanyaan berasingan.
SELECT COUNT(*) FROM menuitem
Ini akan mengembalikan satu baris dengan lajur yang mengandungi jumlah bilangan baris.
Mengira Kiraan Halaman
Kami kemudiannya boleh mengira jumlah halaman dengan membahagikan jumlah baris dengan item yang dikehendaki setiap halaman dan membulatkan ke atas kepada integer terdekat.
$page_count = (int)ceil($row_count / $items_per_page);
Melaraskan untuk Halaman Tidak Sah Permintaan
Apabila pengguna meminta halaman yang tidak wujud (mis., halaman 5 apabila hanya terdapat 3), kami boleh mengubah halanya ke halaman terakhir atau halaman pertama, bergantung pada situasi .
Pautan Halaman Keluaran
Setelah kami mengetahui jumlah halaman, kami boleh menjana senarai pautan halaman. Untuk halaman semasa, kami memaparkannya sebagai teks, manakala untuk halaman lain, kami membuat pautan ke halaman tersebut.
for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { // current page echo 'Page ' . $i . '<br>'; } else { // link to other page echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
Kod Semakan
Menggunakan pengiraan halaman dinamik kaedah, kod anda yang disemak mungkin kelihatan seperti ini:
// Get page number from URL $page = 1; if (!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if (false === $page) { $page = 1; } } // Get total row count $sql = "SELECT COUNT(*) FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); mysqli_free_result($result); // Calculate page count $page_count = (int)ceil($row_count / $items_per_page); // Double check page is in range if ($page > $page_count) { $page = 1; } // Calculate offset $offset = ($page - 1) * $items_per_page; // Select limited data $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page; $result = mysqli_query($con, $sql); // ... (Rest of your code) ... // Output page links for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { echo 'Page ' . $i . '<br>'; } else { echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
Kod ini membolehkan anda membuat halaman secara dinamik berdasarkan bilangan baris dalam pangkalan data, menghapuskan keperluan untuk nombor halaman berkod keras dan mengimbangi.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Pautan Penomboran secara Dinamik dalam MySQL Menggunakan LIMIT dan OFFSET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)?
