Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan paging pertanyaan untuk memaparkan nombor halaman dalam php

Bagaimana untuk melaksanakan paging pertanyaan untuk memaparkan nombor halaman dalam php

PHPz
PHPzasal
2023-03-29 10:10:471087semak imbas

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.

1. Prinsip asas halaman pertanyaan

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:

    <li>Dapatkan syarat pertanyaan <li>Soal jumlah data yang memenuhi syarat <li>Kira jumlah halaman berdasarkan nombor yang dipaparkan pada setiap halaman Nombor <li>Dapatkan nombor halaman semasa yang diminta oleh pengguna <li>Kira kedudukan permulaan pertanyaan paging <li>Lakukan pertanyaan paging operasi <li>Paparkan data dan yang sepadan pada halaman muka depan Nombor halaman

2. PHP melaksanakan paging pertanyaan

Seterusnya, kami melaksanakan fungsi paging pertanyaan melalui kod PHP.

2.1 Jumlah bilangan pertanyaan

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.

2.2 Kira jumlah halaman dan nombor halaman semasa

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.

2.3 Lakukan pertanyaan paging

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.

2.4 Paparkan nombor halaman dalam penomboran

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 &#39;class="active"&#39; ?>>
            <?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>.

3. Ringkasan

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!

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