Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya Melaksanakan Penomboran Dengan MySQL LIMIT dan OFFSET?
Penomboran Menggunakan MYSQL LIMIT, OFFSET
Penomboran ialah teknik yang digunakan untuk memaparkan set data yang besar dalam bongkah atau halaman yang boleh diurus. Dalam MySQL, ini boleh dicapai menggunakan klausa LIMIT dan OFFSET.
Persoalannya
Seorang pengguna mempunyai jadual pangkalan data dengan sejumlah besar item dan ingin melaksanakan penomboran pada halaman web. Pengguna telah menyediakan kod untuk memaparkan bilangan item tetap (mis., 4) setiap halaman, tetapi mereka perlu menentukan jumlah halaman secara dinamik dan membenarkan pengguna menavigasi antara mereka.
Jawapannya
Untuk mencapai ini, disyorkan untuk menggunakan parameter pertanyaan URL untuk penomboran. Parameter harus mewakili nombor halaman, seperti "/itempage.php?page=2". Dalam kod sisi pelayan, anda boleh mendapatkan semula nombor halaman menggunakan $_GET['halaman' dan menggunakannya untuk mengira nilai LIMIT dan OFFSET untuk pertanyaan SQL anda.
Contohnya:
$page = 1; if (!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if ($page === false) { $page = 1; } } $items_per_page = 4; $offset = ($page - 1) * $items_per_page; // Build the SQL query $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
Untuk menentukan jumlah halaman, laksanakan pertanyaan SQL yang berasingan sebelum mengehadkan keputusan:
$sql = "SELECT COUNT(*) AS total_rows FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); mysqli_free_result($result); $page_count = 0; if ($row_count === 0) { // Handle empty table error } else { $page_count = ceil($row_count / $items_per_page); if ($page > $page_count) { // Handle out-of-range page request } }
Dengan jumlah kiraan halaman dan nombor halaman semasa, anda kini boleh menjana pautan navigasi secara dinamik untuk kandungan bernombor.
Atas ialah kandungan terperinci Bagaimanakah saya Melaksanakan Penomboran Dengan MySQL LIMIT dan OFFSET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!