masalah Stack trace

Hallo teman2 saay mau tanya ni, saya ada masalah saat tampil table. notif nya : Fatal error: Uncaught Error: mysqli object is already closed in C:\xampp\htdocs\perpustakaan\tes.php:14 Stack trace: #0 C:\xampp\htdocs\perpustakaan\tes.php(14): mysqli_query(Object(mysqli), 'SELECT * FROM t...') #1 {main} thrown in C:\xampp\htdocs\perpustakaan\tes.php on line 14
boleh sarannya teman2?

table
<?php include 'koneksi/connection.php'; ?>
<!-- table -->
<table border="2" class="table table-striped" style="width:100%">
        <thead>
            <tr>
                <th>NO.</th>
                <th>TANGGAL</th>
                <th>NAMA BUKU</th>
                <th>KETERANGAN</th>
            </tr>
        </thead>
        <?php 
        $no=1;
        $ambildata = mysqli_query($con, "SELECT * FROM tb_perpustakaan");
        while ($tampil = mysqli_fetch_array($ambildata)){
            echo "
            <tr>
                <td>$no</td>
                <td>$tampil[tanggal]</td>
                <td>$tampil[nama_buku]</td>
                <td>$tampil[keterangan]</td>
            </tr>
            ";

            $no++;
            
        }
        ?>
        </tbody>
    </table>


koneksi
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'db_perpustakaan';

$con = mysqli_connect($host,$user,$pass);
mysqli_close($con);

// if ($dbselect == true) {
//     echo "Connection Success!";
// } else {
//     echo "Connection Failed!";
// }
avatar novaje

@novaje

28 Kontribusi 3 Poin


Jawaban

Itu kamu baru membuka koneksi.

$con = mysqli_connect($host,$user,$pass);
tapi kenapa langsung di matikan kembali
mysqli_close($con);
 
avatar GrennKren

@GrennKren

62 Kontribusi 47 Poin


Pesan kesalahan "Fatal error: Uncaught Error: mysqli object is already closed" disebabkan oleh mencoba menggunakan objek mysqli yang sudah ditutup sebelumnya. Hal ini dapat terjadi jika Anda lupa menutup objek setelah selesai menggunakannya, atau jika Anda mencoba menggunakannya setelah skrip selesai.

Dalam kasus Anda, kesalahan tersebut disebabkan oleh fungsi `mysqli_close()` di file `koneksi.php`. Fungsi ini menutup objek mysqli, sehingga Anda tidak dapat menggunakannya lagi setelah dipanggil.

Untuk memperbaiki kesalahan tersebut, Anda perlu memindahkan fungsi `mysqli_close()` ke bagian akhir file `koneksi.php`. Hal ini akan memastikan bahwa objek ditutup setelah selesai digunakan, dan Anda tidak akan mendapatkan pesan kesalahan.

Berikut adalah kode yang telah diperbaiki:

```php
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'db_perpustakaan';

$con = mysqli_connect($host,$user,$pass);

// if ($dbselect == true) {
//     echo "Connection Success!";
// } else {
//     echo "Connection Failed!";
// }

?>

<!-- table -->
<table border="2" class="table table-striped" style="width:100%">
        <thead>
            <tr>
                <th>NO.</th>
                <th>TANGGAL</th>
                <th>NAMA BUKU</th>
                <th>KETERANGAN</th>
            </tr>
        </thead>
        <?php 
        $no=1;
        $ambildata = mysqli_query($con, "SELECT * FROM tb_perpustakaan");
        while ($tampil = mysqli_fetch_array($ambildata)){
            echo "
            <tr>
                <td>$no</td>
                <td>$tampil[tanggal]</td>
                <td>$tampil[nama_buku]</td>
                <td>$tampil[keterangan]</td>
            </tr>
            ";

            $no++;
            
        }
        ?>
        </tbody>
    </table>
```

Setelah Anda melakukan perubahan ini, pesan kesalahan seharusnya hilang dan Anda dapat menampilkan tabel tanpa masalah.
avatar adamajalah27

@adamajalah27

54 Kontribusi 24 Poin


Login untuk gabung berdiskusi