Rumah > Artikel > pembangunan bahagian belakang > Satu contoh menerangkan cara melaksanakan fungsi halaman dan pertanyaan dalam PHP
Dalam halaman web, apabila kita perlu memaparkan lebih banyak data, seperti senarai artikel, senarai produk, dsb., kita selalunya perlu menomborkan data supaya pengguna boleh menyemak imbas dan melihatnya dengan lebih mudah. Untuk halaman web yang telah melaksanakan fungsi paging, kadangkala perlu menambah beberapa syarat pertanyaan supaya pengguna boleh menapis data yang diperlukan dengan lebih tepat. Jadi, bagaimana untuk melaksanakan fungsi paging dan pertanyaan dalam PHP? Di bawah, kami akan memperkenalkan kaedah pelaksanaan khusus.
Mula-mula, mari kita semak semula pelaksanaan paging.
Apabila kita ingin melaksanakan fungsi paging, kita biasanya perlu menggunakan dua kata kunci dalam pangkalan data: LIMIT dan OFFSET. Antaranya, LIMIT menunjukkan bilangan maksimum rekod untuk diambil bermula dari kedudukan tertentu, dan OFFSET menunjukkan kedudukan untuk diambil. Biasanya, kita boleh mengira nilai kedua-dua kata kunci ini, dan formulanya ialah: LIMIT ($halaman - 1) * $pagesize, $pagesize.
Dalam aplikasi praktikal, anda juga perlu memberi perhatian kepada perkara berikut:
Sekarang, mari kita lihat cara melaksanakan fungsi halaman dan pertanyaan.
Untuk fungsi paging dengan pertanyaan, dua bahagian perlu dipertimbangkan masing-masing semasa pelaksanaan: paging dan query. Di bawah, kami akan memperkenalkan dua bahagian ini secara berasingan.
1. Paging
Kaedah melaksanakan paging adalah serupa dengan yang diperkenalkan di atas, tetapi dengan beberapa penalaan halus. Kaedah pelaksanaan khusus adalah seperti berikut:
Dapatkan jumlah bilangan hasil pertanyaan.SELECT count(*) as total FROM table WHERE condition;Tapis dan halaman berdasarkan syarat pertanyaan yang dipilih oleh pengguna.
Sekarang, mari kita lihat pelaksanaan kod khusus.
Pertama ialah kod untuk mendapatkan jumlah nombor:
Kemudian ialah kod untuk memasang pernyataan SQL dan melakukan paging:$sql = "SELECT count(*) as total FROM table WHERE condition"; $result = $db->query($sql); $row = $result->fetch_assoc(); $total = $row['total'];Antaranya, $page mewakili nombor halaman semasa, $pagesize menunjukkan jumlah data yang dipaparkan pada setiap halaman dan $offset menunjukkan kedudukan dari mana untuk mula mengambil data. Mengikut syarat pertanyaan yang dihantar dari bahagian hadapan, kami mengumpulkan pernyataan SQL, menambah kata kunci LIMIT dan OFFSET untuk paging, dan akhirnya memanggil kaedah pertanyaan melalui objek $db untuk melaksanakan pernyataan SQL.
$page = $_GET['page'] ? $_GET['page'] : 1; $pagesize = 10; $offset = ($page - 1) * $pagesize; $sql = "SELECT * FROM table WHERE condition"; if (isset($_GET['type']) && !empty($_GET['type'])) { $type = $_GET['type']; $sql .= " AND type = '$type'"; } $sql .= " ORDER BY id DESC LIMIT $offset, $pagesize"; $result = $db->query($sql);
2. Pertanyaan
Apabila melaksanakan fungsi pertanyaan, biasanya kita perlu lulus dalam syarat pertanyaan sebagai parameter dan penapis berdasarkan syarat pertanyaan. Sebagai contoh, jika kita ingin mencari mengikut nama produk, kita perlu menambah kotak pertanyaan pada halaman hujung hadapan supaya pengguna boleh memasukkan nama produk yang ingin mereka tanyakan. Kemudian, syarat pertanyaan yang dihantar dari halaman hujung hadapan dipasang ke dalam pernyataan SQL, dan akhirnya hasil pertanyaan dipaparkan dalam halaman.
Sekarang, mari kita lihat pelaksanaan kod khusus.
Pertama ialah kod untuk pertanyaan:
Kemudian ialah kod untuk memasang pernyataan SQL dan paging:$name = $_GET['name']; $sql = "SELECT count(*) as total FROM table WHERE name LIKE '%$name%'"; $result = $db->query($sql); $row = $result->fetch_assoc(); $total = $row['total'];Antaranya, $name mewakili kunci daripada perkataan pertanyaan, padanan kabur dilakukan melalui kata kunci SUKA. Mengikut syarat pertanyaan yang dihantar dari bahagian hadapan, kami mengumpulkan pernyataan SQL, menambah kata kunci LIMIT dan OFFSET untuk paging, dan akhirnya memanggil kaedah pertanyaan melalui objek $db untuk melaksanakan pernyataan SQL.
$page = $_GET['page'] ? $_GET['page'] : 1; $pagesize = 10; $offset = ($page - 1) * $pagesize; $sql = "SELECT * FROM table WHERE name LIKE '%$name%' ORDER BY id DESC LIMIT $offset, $pagesize"; $result = $db->query($sql);
Ringkasan
Di atas ialah kaedah khusus untuk melaksanakan paging dengan pertanyaan dalam PHP. Dalam aplikasi praktikal, kami perlu mengoptimumkan dan menambah baik berdasarkan senario perniagaan tertentu untuk mencapai pengalaman dan prestasi pengguna yang lebih baik. Saya harap kandungan di atas berguna kepada semua pembangun.
Atas ialah kandungan terperinci Satu contoh menerangkan cara melaksanakan fungsi halaman dan pertanyaan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!