Membuat multiple delete sederhana

PlajariKode - Banner membuat multiple delete sederhana

PlajariKode - Membuat multiple delete sederhana.

Hai, berjumpa kembali. Pada artikel kali ini kita akan mempelajari cara membuat fitur multiple delete, yang artinya kita bisa menghapus beberapa data sekaligus dalam sekali klik.

Okeh, langsung saja. Berikut adalah file - file yang akan kita buat.

  • koneksi.php
  • index.php
  • hapus.php

Tapi, pertama kita buat databasenya dulu, masukan kode berikut pada menu SQL untuk membuat database beserta tabel dan beberapa record didalamnya.
--
-- Database: `test`
--

CREATE DATABASE IF NOT EXISTS `test`;
USE `test`;

-- --------------------------------------------------------

--
-- Struktur dari tabel `produk`
--

CREATE TABLE `produk` (
  `id_produk` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `nama_produk` varchar(50) NOT NULL,
  `harga` int(11) NOT NULL,
  `qty` int(11) NOT NULL
);

--
-- Dumping data untuk tabel `produk`
--

INSERT INTO `produk` (`id_produk`, `nama_produk`, `harga`, `qty`) VALUES
(2, 'Snapple - Mango Maddness', 6811, 33),
(4, 'Beer - Alexander Kieths, Pale Ale', 5644, 36),
(5, 'Godiva White Chocolate', 6176, 31),
(7, 'Tortillas - Flour, 8', 6658, 55),
(8, 'Daves Island Stinger', 8933, 93),
(9, 'Dried Apple', 5941, 88),
(10, 'Lid Tray - 12in Dome', 8308, 71);

Hasilnya akan seperti gambar berikut.

PlajariKode - Gambar struktur tabel produk

koneksi.php

<?php
// koneksi
$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'test'; // nama database

$conn = new PDO('mysql:host='.$host.';dbname='.$db_name, $username, $password);

index.php

Dalam file ini berisi kode untuk menampilkan data dari database dan script untuk fitur select all record.
<?php

require_once 'koneksi.php';

// select semua data
$q = $conn->prepare('SELECT * FROM produk');
$q->execute();
?>

<!DOCTYPE html>
<html>
<head>
  <title>Membuat Multipel Delete</title>
</head>
<body>
  <h1>PlajariKode - Membuat Multiple Delete</h1>
  <form method="post" action="hapus.php">
    <table border="1">
      <tr>
        <th><input type="checkbox" onchange="checkAll(this)"></th>
        <th>No.</th>
        <th>Nama Produk</th>
        <th>Harga</th>
        <th>Qty</th>
      </tr>
        
      <?php
      $no = 1;
      while ($d = $q->fetch()) {
        echo "<tr>";
        echo "<td><input type='checkbox' name='id[]' value='".$d['id_produk']."'></td>";
        echo "<td>".$no++."</td>";
        echo "<td>".$d['nama_produk']."</td>";   
        echo "<td>".$d['harga']."</td>";   
        echo "<td>".$d['qty']."</td>";   
        echo "</tr>";
      }
      ?>

      
    </table><br/>
      <input type="submit" value="Hapus" name="hapus">
  </form>

  <script>
    function checkAll(box) 
    {
      let checkboxes = document.getElementsByTagName('input');

      if (box.checked) {
        for (let i = 0; i < checkboxes.length; i++) {
          if (checkboxes[i].type == 'checkbox') {
            checkboxes[i].checked = true;
          }
        }
      } else {
        for (let i = 0; i < checkboxes.length; i++) {
          if (checkboxes[i].type == 'checkbox') {
            checkboxes[i].checked = false;
          }
        }
      }
    }

  </script>

</body>
</html>

Output:

PlajariKode - Tampilan halaman index untuk multiple delete sederhana


Perlu diperhatikan, setiap checkbox memiliki value id_produk yang berbeda - beda dan atribut name pada tag input terdapat tanda [ ] karena yang dikirimkan nantinya berupa array yang menampung value dari checkbox.

hapus.php

Berisi kode untuk proses hapus data.
<?php

require_once 'koneksi.php';

if (isset($_POST['hapus']) && !empty($_POST['id'])) {
  $id = $_POST['id'];
  
  // implode() adalah sebuah fungsi PHP yang berguna untuk mengubah suatu array menjadi sebuah text atau kalimat
  $q = "DELETE FROM produk WHERE id_produk IN (".implode(',', $id).")";
  $sql = $conn->prepare($q);
  $sql->execute();

  header('Location:index.php');
} else {
  echo "<script>alert('Tidak ada data yang dihapus'); window.location.href='index.php';</script>";
}

Baca juga: Membut fitur select all checkbox dengan JavaScript

Posting Komentar

0 Komentar