Dalam aplikasi web, fungsi paging sangat diperlukan apabila memaparkan jumlah data yang besar. Sebagai bahasa pembangunan web yang popular, PHP secara semula jadi menyediakan kaedah pelaksanaan halaman. Artikel ini akan memperkenalkan cara melaksanakan paging dalam PHP.
1. Dapatkan data
Sebelum melaksanakan paging, anda perlu mendapatkan data untuk menjadi paging. Biasanya, kita perlu mendapatkan data daripada pangkalan data Di sini kita mengandaikan bahawa kita menggunakan pangkalan data MySQL dan merangkum kaedah sambungan pangkalan data dan pertanyaan melalui PDO. Berikut ialah contoh kaedah pertanyaan:
function query($sql, $params = []) { $dsn = "mysql:host=localhost;dbname=mydatabase;charset=utf8mb4"; $username = "myusername"; $password = "mypassword"; $options = [ PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]; try { $pdo = new PDO($dsn, $username, $password, $options); $stmt = $pdo->prepare($sql); $stmt->execute($params); return $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Database error: " . $e->getMessage()); } }
Kita boleh membuat pertanyaan data dengan memanggil kaedah ini, contohnya:
$result = query("SELECT * FROM mytable");
2. Kira jumlah halaman
Selepas mendapat data, seterusnya Satu langkah adalah untuk mengetahui jumlah halaman. Kita boleh mengira jumlah bilangan halaman melalui formula berikut:
totalPages = ceil(totalItems / pageSize)
di mana totalItems mewakili jumlah bilangan item, dan pageSize mewakili bilangan item yang dipaparkan pada setiap halaman.
Dalam PHP, anda boleh menggunakan fungsi ceil() terbina dalam untuk membulatkan contoh adalah seperti berikut:
$totalItems = count($result); $pageSize = 10; $totalPages = ceil($totalItems / $pageSize);
3 Dapatkan data halaman semasa
Seterusnya, kita perlu Dapatkan data untuk dipaparkan pada halaman semasa. Untuk kemudahan, kita boleh menentukan fungsi getPageData() untuk mendapatkan data halaman semasa Fungsi ini perlu memasukkan nombor halaman semasa $halaman dan bilangan item yang dipaparkan pada setiap halaman $pageSize >
function getPageData($data, $page, $pageSize) { $start = ($page - 1) * $pageSize; $end = $start + $pageSize; return array_slice($data, $start, $pageSize); }
$data = query("SELECT * FROM mytable"); $pageData = getPageData($data, 2, 10); // 获取第2页,每页显示10条数据
function getPageLinks($currentPage, $totalPages) { $links = []; for ($i = 1; $i <= $totalPages; $i++) { $isActive = $i == $currentPage; $links[] = [ "page" => $i, "isActive" => $isActive, "url" => "?page=$i", ]; } $prevPage = $currentPage - 1; $nextPage = $currentPage + 1; if ($prevPage >= 1) { array_unshift($links, [ "page" => $prevPage, "isActive" => false, "url" => "?page=$prevPage", ]); } if ($nextPage <= $totalPages) { array_push($links, [ "page" => $nextPage, "isActive" => false, "url" => "?page=$nextPage", ]); } return $links; }
Fungsi ini akan menjana tatasusunan pautan yang sepadan berdasarkan nombor halaman semasa dan jumlah bilangan halaman, termasuk nombor halaman setiap pautan dan sama ada ia halaman semasa , dan URL pautan. Tambahkan pautan "halaman sebelumnya" di hadapan tatasusunan pautan dan pautan "halaman seterusnya" selepasnya untuk mendapatkan tatasusunan pautan penomboran yang lengkap.
Contoh penggunaan adalah seperti berikut:
$totalPages = ceil($totalItems / $pageSize); $pageLinks = getPageLinks($currentPage, $totalPages);
Setakat ini, kami telah memperkenalkan semua langkah tentang cara melaksanakan paging dalam PHP. Melalui kaedah di atas, hanya beberapa pengiraan matematik mudah dan operasi tatasusunan diperlukan untuk melaksanakan fungsi paging dengan mudah.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penomboran dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!