Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Melaksanakan Penomboran Pangkalan Data dalam PHP menggunakan LIMIT dan OFFSET MySQL?

Bagaimana untuk Melaksanakan Penomboran Pangkalan Data dalam PHP menggunakan LIMIT dan OFFSET MySQL?

Patricia Arquette
Lepaskan: 2025-01-05 03:13:41
asal
316 orang telah melayarinya

How to Implement Database Pagination in PHP using MySQL's LIMIT and OFFSET?

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

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

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

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=&quot;/menuitem.php?page=' . $i . '&quot;>Page ' . $i . '</a><br>';
   }
}
Salin selepas log masuk

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!

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