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?

Linda Hamilton
Lepaskan: 2024-12-05 15:17:10
asal
865 orang telah melayarinya

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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan