Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Satu contoh menerangkan cara melaksanakan fungsi halaman dan pertanyaan dalam PHP

Satu contoh menerangkan cara melaksanakan fungsi halaman dan pertanyaan dalam PHP

PHPz
PHPzasal
2023-04-06 09:15:26868semak imbas

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:

  1. Jumlah bilangan data perlu diperoleh untuk mengira jumlah halaman dan nombor halaman sebelum dan selepas halaman semasa;
  2. Berapa keping data yang dipaparkan pada setiap halaman perlu ditetapkan dalam kod, biasanya 10, 20, 30, dsb membolehkan pengguna melompat ke halaman, iaitu, untuk beralih ke halaman data dengan nombor halaman yang ditentukan.
  3. Kandungan di atas adalah pengetahuan asas paging Jika pembaca tidak biasa dengan pelaksanaan paging, mereka boleh membaca beberapa maklumat yang berkaitan terlebih dahulu.

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.
  1. Jumlah bilangan hasil pertanyaan ialah data asas yang diperlukan untuk pengiraan seterusnya bagi jumlah halaman dan nombor halaman sebelum dan selepas kita boleh mendapatkannya melalui penyataan SELECT count(*). SQL. Contohnya adalah seperti berikut:

dengan jumlah ialah jumlah bilangan hasil pertanyaan.
SELECT count(*) as total FROM table WHERE condition;

Tapis dan halaman berdasarkan syarat pertanyaan yang dipilih oleh pengguna.
  1. Bahagian ini lebih rumit dan perlu dipertimbangkan berdasarkan senario perniagaan tertentu. Mengambil pusat beli-belah dalam talian sebagai contoh, jika kita ingin menapis jenis produk, kita perlu menambah menu lungsur ke halaman hadapan yang pengguna boleh memilih jenis yang dikehendaki. Kemudian, syarat pertanyaan yang dihantar dari halaman hadapan dihimpunkan ke dalam pernyataan SQL, dan kemudian paging dilakukan melalui algoritma paging, dan akhirnya hasil paging dipaparkan.

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!

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