Penomboran menggunakan MySQL LIMIT, OFFSET dengan Respons
Penomboran membenarkan pemisahan set data yang besar kepada halaman yang lebih kecil dan boleh diurus, teknik biasa dalam pembangunan web . MySQL menawarkan klausa LIMIT dan OFFSET untuk mengendalikan penomboran.
Masalah:
Anda perlu mencipta berbilang halaman untuk memaparkan data daripada jadual pangkalan data dengan bilangan item yang telah ditetapkan setiap halaman, tetapi tanpa pengekodan keras penomboran logik.
Penyelesaian:
Gunakan parameter penomboran dalam URL, seperti:
http://yoursite.com/itempage.php?page=2
Anda boleh mengakses nombor halaman yang diminta menggunakan $_GET['page'].
Ubah suai pertanyaan SQL anda untuk mengira secara dinamik offset berdasarkan halaman nombor:
// determine page number from $_GET $page = 1; if(!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if(false === $page) { $page = 1; } } // set the number of items to display per page $items_per_page = 4; // build query $offset = ($page - 1) * $items_per_page; $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
Untuk menentukan jumlah halaman, anda perlu mengira bilangan baris dalam jadual:
$sql = "SELECT your_primary_key_field FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); // free the result set as you don't need it anymore mysqli_free_result($result); $page_count = 0; if (0 === $row_count) { // maybe show some error since there is nothing in your table } else { // determine page_count $page_count = ceil($row_count / $items_per_page); // double check that request page is in range if($page > $page_count) { // error to user, maybe set page to 1 $page = 1; } }
Apabila memaparkan data penomboran, anda boleh menggunakan Pembolehubah $page dan $page_count untuk menjana pautan yang sesuai:
// later when outputting page, you can simply work with $page and $page_count to output links // for example for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { // this is current page echo 'Page ' . $i . '<br>'; } else { // show link to other page echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran Pangkalan Data dalam PHP menggunakan LIMIT dan OFFSET MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!