Diskon 80% terbatas! Masukkan kupon "merdeka" di kelas apa saja

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 1 tahun 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

120 Kontribusi 40 Poin

Dipost 1 tahun 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