Rumah pangkalan data tutorial mysql Bagaimana untuk Menjana Pautan Penomboran secara Dinamik dalam MySQL Menggunakan LIMIT dan OFFSET?

Bagaimana untuk Menjana Pautan Penomboran secara Dinamik dalam MySQL Menggunakan LIMIT dan OFFSET?

Dec 05, 2024 pm 03:17 PM

How to Dynamically Generate Pagination Links in MySQL Using LIMIT and OFFSET?

Penomboran 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
Salin selepas log masuk

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);
Salin selepas log masuk

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>';
  }
}
Salin selepas log masuk

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>';
  }
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kurangkan penggunaan memori MySQL di Docker Kurangkan penggunaan memori MySQL di Docker Mar 04, 2025 pm 03:52 PM

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Mar 04, 2025 pm 04:01 PM

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif Apa itu SQLite? Gambaran Keseluruhan Komprehensif Mar 04, 2025 pm 03:55 PM

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Mar 04, 2025 pm 03:54 PM

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

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Mar 04, 2025 pm 03:49 PM

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Mar 18, 2025 pm 12:00 PM

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

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

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

See all articles