Memandangkan kandungan tapak web terus meningkat, ia secara beransur-ansur menjadi perlu untuk memaparkannya dalam halaman. Apabila menggunakan PHP untuk membangunkan laman web, cara melaksanakan paparan paging telah menjadi kemahiran asas. Artikel ini akan memperkenalkan cara melaksanakan paparan halaman dalam PHP.
1. Konsep paparan paging
Paparan halaman adalah untuk membahagikan hasil data yang lebih besar kepada berbilang halaman untuk paparan. Contohnya, paparan hasil carian, paparan produk, dsb. Paparan halaman secara amnya dibahagikan kepada dua kaedah: halaman muka depan dan halaman belakang.
Halaman hadapan: Halaman hadapan merujuk kepada menghiris keseluruhan data pada sisi klien dan menggunakan blok kesan paparan JavaScript untuk mencapai tujuan halaman data. Pendekatan ini biasanya mengekstrak semua data sekaligus (dikembalikan dalam format JSON atau XML) dan memaparkannya melalui JavaScript.
Halaman belakang: Halaman belakang merujuk kepada data halaman pada bahagian pelayan, hanya mengembalikan data halaman semasa, bukan semua data. Kaedah ini biasanya menentukan nombor halaman semasa berdasarkan parameter yang dihantar, dan kemudian menggunakan parameter pertanyaan SQL untuk mengambil hanya data yang diperlukan pada masa ini untuk paparan. Yang paling biasa digunakan ialah penyataan Had yang disediakan dalam MySQL, yang boleh melaksanakan fungsi paging dengan mudah, membolehkan kami melakukan paging data dengan mudah dalam PHP.
2. Gunakan PHP dan MySQL untuk melaksanakan paging
Mari perkenalkan secara terperinci cara menggunakan PHP dan MySQL untuk melaksanakan fungsi paging.
Sebelum kita bermula, kita perlu menyambung ke pangkalan data MySQL. Anda boleh menggunakan PDO atau mysqli untuk menyambung ke pangkalan data.
//连接到MySQL数据库 $host = "localhost"; $user = "username"; $password = "password"; $database = "database"; $connect = mysqli_connect($host, $user, $password, $database);
?>
Untuk melaksanakan paging, pertama sekali kita perlu Dapatkan jumlah rekod dalam keputusan pertanyaan untuk paging. Kita boleh mendapatkan jumlah rekod melalui pernyataan SQL.
// 获取记录总数 $sql = "SELECT COUNT(*) FROM table_name"; $result = mysqli_query($connect, $sql); $row = mysqli_fetch_row($result); $total = $row[0];
?>
Dalam kemajuan Sebelum paparan paging, kita perlu menentukan bilangan rekod untuk dipaparkan pada setiap halaman. Biasanya 10 atau 20 rekod dipaparkan setiap halaman, tetapi kami boleh melaraskannya mengikut keperluan.
//设定每页显示的记录数 $per_page = 10;
?>
Dapatkan jumlah nombor daripada rekod Selepas menambah bilangan rekod yang dipaparkan pada setiap halaman, kita boleh mengira jumlah halaman yang ada.
// 计算总页数 $total_pages = ceil($total / $per_page);
?>
Pengguna boleh menavigasi dengan memasukkan nombor halaman ke halaman yang dikehendaki. Oleh itu, kita perlu mendapatkan nombor halaman semasa dahulu (jika tidak dinyatakan, ia lalai ke halaman 1).
// 获取当前页码 if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; }
?>
Sebelum melaksanakan pertanyaan, Kita perlu memikirkan rekod mana halaman harus bermula. Untuk halaman pertama, kita mulakan dari rekod pertama; untuk halaman lain, kita perlu mengira kedudukan rekod permulaan halaman melalui nombor halaman semasa.
// 计算起始记录位置 $start = ($page - 1) * $per_page;
?>
Selepas mendapat permulaan record position , kita boleh melaksanakan pertanyaan dan mengeluarkan keputusan kepada dokumen HTML. Pernyataan Had dalam MySQL digunakan di sini.
// 查询数据并显示 $sql = "SELECT * FROM table_name LIMIT $start, $per_page"; $result = mysqli_query($connect, $sql); while ($row = mysqli_fetch_assoc($result)) { echo $row['column_name']; }
?>
Langkah terakhir ialah mencipta halaman navigasi supaya Pengguna boleh melompat ke halaman yang dikehendaki dengan cepat. Navigasi penomboran biasa termasuk pautan berangka dan pautan "halaman sebelumnya" dan "halaman seterusnya". Kita boleh memilih navigasi paging yang sesuai mengikut keperluan kita.
// 分页链接 if ($total_pages > 1) { echo ''; if ($page > 1) { echo '上一页'; } for ($i = 1; $i <= $total_pages; $i++) { if ($i == $page) { echo ''.$i.''; } else { echo ''.$i.''; } } if ($page < $total_pages) { echo '下一页'; } echo ''; }?>
Di atas ialah versi ringkasan paging menggunakan PHP dan MySQL.
3. Kemungkinan masalah dengan halaman
Anda mungkin menghadapi masalah berikut semasa melaksanakan halaman:
- Kaedah untuk mendapatkan jumlah rekod adalah berbeza: dalam MySQL Cara biasa untuk mendapatkan jumlah rekod adalah dengan menggunakan pernyataan COUNT, yang mungkin tidak cukup tepat dalam beberapa kes.
- Proses pertanyaan adalah perlahan: Jika jumlah data adalah sangat besar, pertanyaan paging boleh menyebabkan proses pertanyaan menjadi perlahan Dalam kes ini, kaedah seperti caching atau sharding data boleh digunakan untuk mengoptimumkan kecekapan pertanyaan .
- Kerentanan suntikan SQL: Jika nombor halaman atau parameter lain yang dimasukkan oleh pengguna tidak ditapis, ia mungkin membawa kepada kerentanan suntikan SQL dan penapisan dan pengesahan data harus dilakukan dalam kod.
4. Ringkasan
Melalui pengenalan di atas, kita dapat memahami dengan jelas cara melaksanakan paging dalam PHP dan pangkalan data yang digunakan. Senario sebenar berbeza-beza, tetapi proses umum adalah sama. Pelajar boleh memikirkannya sendiri dan menggunakan kaedah yang berbeza untuk meningkatkan pengalaman dan kecekapan operasi halaman kami untuk mencapai pengalaman pengguna yang lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan paparan paging dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!