Dalam pembangunan web, pertanyaan dan paparan data adalah operasi yang sangat biasa. Untuk paparan halaman data yang ditanya, nombor halaman yang sepadan perlu dipaparkan pada halaman, yang merupakan keperluan yang diperlukan bagi pengguna untuk memudahkan operasi membelok halaman. Artikel ini akan menerangkan cara melaksanakan halaman pertanyaan melalui kod PHP dan memaparkan nombor halaman yang sepadan dalam halaman senarai.
Fungsi halaman yang lengkap perlu mengambil kira beberapa faktor seperti syarat pertanyaan, bilangan halaman dan nombor halaman semasa. Dalam pelaksanaan khusus, anda perlu terlebih dahulu menanyakan jumlah bilangan semua data yang memenuhi syarat melalui syarat pertanyaan, kemudian mengira jumlah halaman berdasarkan jumlah data dan nombor yang dipaparkan pada setiap halaman, melaksanakan pertanyaan halaman. , dan akhirnya memaparkan data dan nombor halaman yang sepadan di hujung hadapan.
Proses khusus adalah seperti berikut:
Seterusnya, kami melaksanakan fungsi paging pertanyaan melalui kod PHP.
Pertama, kita perlu menanyakan jumlah data yang memenuhi syarat. Katakan kita mempunyai jadual data bernama items
, di mana terdapat medan status
yang mewakili status data Kita perlu menanyakan jumlah bilangan semua rekod data dengan status 1
Kodnya adalah seperti berikut:
// 连接数据库 $conn = mysqli_connect('<host>', '<username>', '<password>', '<database>'); // 构造查询SQL,获取符合条件的数据总数 $sql = "SELECT COUNT(*) AS total FROM `items` WHERE `status`=1"; $res = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($res); $total = $row['total'];
Dalam kod ini, kita mula-mula menyambung ke pangkalan data melalui fungsi mysqli_connect
, kemudian membina SQL pertanyaan, melaksanakan operasi pertanyaan dengan bantuan fungsi mysqli_query
, dan akhirnya mendapatkan jumlah nombor daripada hasil pertanyaan melalui fungsi mysqli_fetch_assoc
.
Seterusnya, kita perlu mengira jumlah halaman dan nombor halaman semasa yang diminta oleh pengguna berdasarkan nombor yang dipaparkan pada setiap halaman dan jumlah data.
// 定义每页显示的数据条数和当前请求的页码,默认为1和1 $limit = 10; // 每页显示的数据条数 $page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 当前请求的页码 // 计算总页数 $totalPage = ceil($total / $limit); if ($page > $totalPage || $page < 1) { $page = 1; } // 计算分页查询的起始位置 $offset = ($page - 1) * $limit;
Antaranya, kami menggunakan fungsi isset
untuk menyemak sama ada terdapat parameter page
dalam parameter permintaan Jika ada, ia akan ditukar kepada integer melalui intval
fungsi; jika tidak, ia akan lalai ke halaman Pertama. Kemudian jumlah bilangan halaman dikira melalui fungsi ceil
, dan kesahihan nombor halaman yang diminta dinilai.
Akhir sekali, kita perlu mengira kedudukan permulaan pertanyaan paging untuk melaksanakan pertanyaan paging dalam pangkalan data. Kami menggunakan operasi pendaraban mudah untuk mengira offset di mana data mula disoal.
Dengan jumlah volum data, jumlah bilangan halaman dan pengimbangan pertanyaan, kami boleh melakukan pertanyaan paging. Berikut ialah contoh kod untuk menanyakan data halaman:
// 查询数据(以status字段为1的数据为例) $sql = "SELECT * FROM `items` WHERE `status`=1 LIMIT {$offset},{$limit}"; $res = mysqli_query($conn, $sql); $rows = mysqli_fetch_all($res, MYSQLI_ASSOC);
Coretan kod ini menghantar offset pertanyaan dan bilangan paparan setiap halaman ke dalam kata kunci LIMIT
dalam pernyataan SQL untuk melaksanakan operasi pertanyaan halaman . Keputusan pertanyaan diperoleh melalui fungsi mysqli_fetch_all
dan dikembalikan kepada pemanggil dalam bentuk tatasusunan PHP.
Akhir sekali, kami perlu memaparkan hasil pertanyaan dan nombor halaman yang sepadan pada halaman hujung hadapan. Untuk paparan nombor halaman, kami biasanya menggunakan elemen <ul> dan <code><li>
HTML, bungkus pautan nombor halaman setiap halaman dalam elemen <li>
dan gunakan elemen <ul>
untuk membalut semua pautan nombor halaman.
<!-- 分页展示 --> <ul> <?php for ($i = 1; $i <= $totalPage; $i++) : ?> <li <?php if ($i == $page) echo 'class="active"' ?>> <?php if ($i == $page) : ?> <?php echo $i; ?> <?php else : ?> <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php endif; ?> </li> <?php endfor; ?> </ul>
Dalam kod di atas, kami menggunakan gelung for
untuk melintasi semua nombor halaman Untuk nombor halaman semasa, kami menambah kelas <li>
pada elemen active
yang sepadan untuk memudahkan bahagian hadapan. -proses gaya akhir. Pada masa yang sama, kami menggunakan penyata bersyarat untuk memproses paparan nombor halaman semasa Nombor halaman semasa tidak perlu menambah pautan dan boleh dikeluarkan terus melalui pernyataan echo
manakala nombor halaman lain perlu menambah pautan melalui elemen <a>
.
Artikel ini memperkenalkan cara melaksanakan kelui pertanyaan melalui PHP dan cara memaparkan nombor halaman halaman di muka hadapan. Melaksanakan fungsi paging adalah tugas biasa dalam pembangunan web Melalui pengenalan artikel ini, saya percaya bahawa setiap orang mempunyai pemahaman yang lebih mendalam tentang fungsi paging.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan paging pertanyaan untuk memaparkan nombor halaman dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!