Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya Melaksanakan Penomboran Dengan MySQL LIMIT dan OFFSET?

Bagaimanakah saya Melaksanakan Penomboran Dengan MySQL LIMIT dan OFFSET?

DDD
DDDasal
2024-12-18 03:51:19858semak imbas

How do I Implement Pagination With MySQL LIMIT and 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!

Kenyataan:
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