Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penomboran dalam PHP

Bagaimana untuk melaksanakan penomboran dalam PHP

WBOY
WBOYasal
2023-06-11 20:09:263629semak imbas

Dalam aplikasi web, fungsi paging sangat diperlukan apabila memaparkan jumlah data yang besar. Sebagai bahasa pembangunan web yang popular, PHP secara semula jadi menyediakan kaedah pelaksanaan halaman. Artikel ini akan memperkenalkan cara melaksanakan paging dalam PHP.

1. Dapatkan data

Sebelum melaksanakan paging, anda perlu mendapatkan data untuk menjadi paging. Biasanya, kita perlu mendapatkan data daripada pangkalan data Di sini kita mengandaikan bahawa kita menggunakan pangkalan data MySQL dan merangkum kaedah sambungan pangkalan data dan pertanyaan melalui PDO. Berikut ialah contoh kaedah pertanyaan:

function query($sql, $params = []) {
    $dsn = "mysql:host=localhost;dbname=mydatabase;charset=utf8mb4";
    $username = "myusername";
    $password = "mypassword";
    $options = [
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ];
    try {
        $pdo = new PDO($dsn, $username, $password, $options);
        $stmt = $pdo->prepare($sql);
        $stmt->execute($params);
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        die("Database error: " . $e->getMessage());
    }
}

Kita boleh membuat pertanyaan data dengan memanggil kaedah ini, contohnya:

$result = query("SELECT * FROM mytable");

2. Kira jumlah halaman

Selepas mendapat data, seterusnya Satu langkah adalah untuk mengetahui jumlah halaman. Kita boleh mengira jumlah bilangan halaman melalui formula berikut:

totalPages = ceil(totalItems / pageSize)

di mana totalItems mewakili jumlah bilangan item, dan pageSize mewakili bilangan item yang dipaparkan pada setiap halaman.

Dalam PHP, anda boleh menggunakan fungsi ceil() terbina dalam untuk membulatkan contoh adalah seperti berikut:

$totalItems = count($result);
$pageSize = 10;
$totalPages = ceil($totalItems / $pageSize);

3 Dapatkan data halaman semasa

Seterusnya, kita perlu Dapatkan data untuk dipaparkan pada halaman semasa. Untuk kemudahan, kita boleh menentukan fungsi getPageData() untuk mendapatkan data halaman semasa Fungsi ini perlu memasukkan nombor halaman semasa $halaman dan bilangan item yang dipaparkan pada setiap halaman $pageSize >

function getPageData($data, $page, $pageSize) {
    $start = ($page - 1) * $pageSize;
    $end = $start + $pageSize;
    return array_slice($data, $start, $pageSize);
}

Fungsi ini akan Mengira kedudukan permulaan dan kedudukan penamat berdasarkan nombor halaman semasa, dan mendapatkan entri yang sepadan daripada tatasusunan $data melalui fungsi array_slice() Contohnya adalah seperti berikut:

$data = query("SELECT * FROM mytable");
$pageData = getPageData($data, 2, 10); // 获取第2页,每页显示10条数据

4. Jana pautan paging

Akhir sekali Langkah pertama adalah untuk menjana pautan penomboran supaya pengguna boleh membuka halaman dengan mudah. Kami boleh menjana pautan penomboran melalui langkah berikut:

    Jana pautan nombor halaman berdasarkan jumlah halaman
  1. Serlahkan pautan yang sepadan berdasarkan nombor halaman semasa; >
  2. Dalam Tambahkan pautan "halaman sebelumnya" di hadapan dan pautan "halaman seterusnya" pada akhirnya.
  3. Berikut ialah contoh kod:
function getPageLinks($currentPage, $totalPages) {
    $links = [];
    for ($i = 1; $i <= $totalPages; $i++) {
        $isActive = $i == $currentPage;
        $links[] = [
            "page" => $i,
            "isActive" => $isActive,
            "url" => "?page=$i",
        ];
    }
    $prevPage = $currentPage - 1;
    $nextPage = $currentPage + 1;
    if ($prevPage >= 1) {
        array_unshift($links, [
            "page" => $prevPage,
            "isActive" => false,
            "url" => "?page=$prevPage",
        ]);
    }
    if ($nextPage <= $totalPages) {
        array_push($links, [
            "page" => $nextPage,
            "isActive" => false,
            "url" => "?page=$nextPage",
        ]);
    }
    return $links;
}

Fungsi ini akan menjana tatasusunan pautan yang sepadan berdasarkan nombor halaman semasa dan jumlah bilangan halaman, termasuk nombor halaman setiap pautan dan sama ada ia halaman semasa , dan URL pautan. Tambahkan pautan "halaman sebelumnya" di hadapan tatasusunan pautan dan pautan "halaman seterusnya" selepasnya untuk mendapatkan tatasusunan pautan penomboran yang lengkap.

Contoh penggunaan adalah seperti berikut:

$totalPages = ceil($totalItems / $pageSize);
$pageLinks = getPageLinks($currentPage, $totalPages);

Setakat ini, kami telah memperkenalkan semua langkah tentang cara melaksanakan paging dalam PHP. Melalui kaedah di atas, hanya beberapa pengiraan matematik mudah dan operasi tatasusunan diperlukan untuk melaksanakan fungsi paging dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penomboran 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