Membuat pagination di PHP Native

Assalamualikum Wr Wb

Hai semua... disini saya akan membuat pagination di PHP Native pertama untuk struktur foldernya saya menngunakan templating/MVC, isi contennya saya simpan di dalam folder sehingga di url tertulis http://localhost/smpn/beranda?page=news dimana dalam ?page=news akan menampilkan data news sesuai di database. pada kali ini saya ingin menggunakan Pagination di halaman ?page=news berikut script yang saya tuliskan

<?php
    $JumlahDataPerhalaman = 3;
    $JumlahData = count($conn->query("SELECT * FROM tb_news"));
    $JumlahHalaman = ceil($JumlahData / $JumlahDataPerhalaman);
    $HalamanAktif = (isset($_GET["?page=espalo-news"])) ? $_GET["beranda?page=espalo-news"] : 1;
    $AwalData = ($JumlahDataPerhalaman * $HalamanAktif) - $JumlahDataPerhalaman;
    // query
    $news = $conn->query("SELECT * FROM tb_news LIMIT $AwalData, $JumlahDataPerhalaman"); ?>

dari kode tersebut diatas halaman tidak bisa menampilkan data seperti gambar pada link di bawah [(https://drive.google.com/file/d/1Jj2ZWvo34alIax57mpDkV0rItGsRmBwB/view?usp=drive_link) ]

terdapat pesan errorsebagai berikut Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, mysqli_result

Wassalamualikum

avatar arifrohman
@arifrohman

21 Kontribusi 4 Poin

Diperbarui 10 bulan yang lalu

1 Jawaban:

coba kek gini bro

<?php
    $JumlahDataPerhalaman = 3;
    
    // Mengubah cara menghitung jumlah data
    $result = $conn->query("SELECT COUNT(*) AS jumlah FROM tb_news");
    $row = $result->fetch_assoc();
    $JumlahData = $row['jumlah'];

    $JumlahHalaman = ceil($JumlahData / $JumlahDataPerhalaman);

    // Memperbaiki pengambilan halaman aktif
    $HalamanAktif = isset($_GET["page"]) ? $_GET["page"] : 1;
    $AwalData = ($JumlahDataPerhalaman * $HalamanAktif) - $JumlahDataPerhalaman;

    // Query
    $news = $conn->query("SELECT * FROM tb_news LIMIT $AwalData, $JumlahDataPerhalaman");
?>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 10 bulan yang lalu

Tanggapan

Tidak bisa masih terdapat error seperti berikut "<b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: int * string"

$HalamanAktif = isset($_GET["page"]) ? intval($_GET["page"]) : 1; $AwalData = ($JumlahDataPerhalaman * $HalamanAktif) - $JumlahDataPerhalaman;

Login untuk ikut Jawaban