Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan paparan paging dalam php

Bagaimana untuk melaksanakan paparan paging dalam php

PHPz
PHPzasal
2023-04-21 09:08:031206semak imbas

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.

  1. Sambung ke pangkalan data

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);

?>

  1. Dapatkan jumlah bilangan rekod

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];

?>

  1. Tetapkan bilangan rekod yang dipaparkan pada setiap halaman

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;

?>

  1. Kira jumlah halaman

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);

?>

  1. Masukkan nombor halaman semasa

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;
}

?>

  1. Kira kedudukan rekod permulaan

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;

?>

  1. Soal data dan paparkannya

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'];
}

?>

  1. Navigasi halaman

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 '';
}

?>

Di atas ialah versi ringkasan paging menggunakan PHP dan MySQL.

3. Kemungkinan masalah dengan halaman

Anda mungkin menghadapi masalah berikut semasa melaksanakan halaman:

  1. 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.
  2. 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 .
  3. 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!

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