Cara Menghapus Banyak Data Sekaligus di CodeIgniter

Fitur hapus multiple CodeIgniter memungkinkan pengguna memilih beberapa baris data dengan checkbox lalu menghapus semuanya sekaligus. Ini jauh lebih efisien dan nyaman dibanding menghapus satu per satu, terutama saat mengelola banyak data.

Menyiapkan Checkbox di View

Kuncinya adalah memberi setiap checkbox nama array id[], sehingga semua yang dicentang terkirim sebagai satu array:

<form method="post" action="<?= base_url('produk/hapus_massal') ?>">
    <?php foreach ($produk as $p): ?>
        <input type="checkbox" name="id[]" value="<?= $p->id ?>">
        <?= $p->nama ?><br>
    <?php endforeach; ?>
    <button type="submit">Hapus yang Dipilih</button>
</form>

Menghapus dengan where_in

Di controller, ambil array id lalu gunakan method where_in() untuk menghapus semuanya dalam satu query:

<?php
public function hapus_massal() {
    $id = $this->input->post('id');

    if (!empty($id)) {
        $this->db->where_in('id', $id)->delete('produk');
        echo count($id) . " data dihapus";
    }
    redirect('produk');
}
?>

Kenapa where_in Efisien?

Method where_in() menghasilkan query DELETE FROM produk WHERE id IN (1, 3, 5). Jadi berapa pun jumlah data yang dipilih, semuanya dihapus dalam satu query saja — sangat cepat dan efisien.

Jangan Lupa Konfirmasi

Karena ini operasi menghapus, sebaiknya tambahkan konfirmasi JavaScript sebelum form dikirim, agar pengguna tidak menghapus data secara tidak sengaja.

Kesimpulan

Dengan where_in(), hapus multiple CodeIgniter dilakukan dalam satu query saja, membuat pengelolaan data massal jauh lebih praktis. Kuncinya adalah input checkbox bernama array id[].

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi CodeIgniter.

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *