About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Script PHP untuk Menghapus Data Via Panel di Tabel
PHP

Script PHP untuk Menghapus Data Via Panel di Tabel

OK… artikel kali ini akan membahas tentang bagaimana cara membuat script PHP untuk menghapus record atau data dari database (MySQL). Adapun penghapusan tersebut dilakukan melalui panel hanya dengan mengklik link yang bersesuaian dengan data atau baris record yang akan dihapus.

Perhatikan video berikut ini yang merupakan tampilan hasil dari script yang akan dibuat kali ini

Pada tampilan video di atas tampak bahwa sebelum data terhapus, muncul semacam konfirmasi apakah user benar-benar ingin menghapus data atau tidak. Konfirmasi ini muncul supaya menghindari hal-hal yang diluar dugaan, misalnya data terhapus secara tidak sengaja karena klik. Untuk memunculkan konfirmasi semacam in, di sini akan digunakan Javascript.

Dalam contoh ini, kita membutuhkan struktur tabel mahasiswa sbb

CREATE TABLE mhs (
  nim varchar(10),
  namaMhs varchar(30),
  PRIMARY KEY (nim)
)

dan sampel data record sbb

INSERT INTO mhs VALUES ('M0197001', 'ROSIHAN ARI YUANA');
INSERT INTO mhs VALUES ('M0197002', 'DWI AMALIA FITRIANI');
INSERT INTO mhs VALUES ('M0197003', 'FAZA FAUZAN KH.');
INSERT INTO mhs VALUES ('M0197004', 'NADA HASANAH');
INSERT INTO mhs VALUES ('M0197005', 'MUH. AHSANI TAQWIM');

Untuk lebih jelasnya perhatikan script di bawah ini

<html>
<head>
   <script language="JavaScript">
   function konfirmasi(nim)
   {
       tanya = confirm('Anda yakin ingin menghapus mahasiswa bernim '+ nim + '?');
       if (tanya == true) return true;
       else return false;
   }
</script>
</head>
<body>

<?php

mysql_connect("namahost","dbuser","dbpass");
mysql_select_db("dbname");

$op = $_GET['op'];
if ($op == "delete")
{
   $nim = $_GET['nim'];

   $query = "DELETE FROM mhs WHERE nim = '$nim'";
   $hasil = mysql_query($query);
}

?>

<table border="1">
<tr>
    <th>No</th>
    <th>NIM</th>
    <th>Nama Mahasiswa</th>
    <th>Action</th>
</tr>

<?php

$no = 1;
$query = "SELECT * FROM mhs";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
   echo "<tr>";
   echo "<td>".$no."</td>";
   echo "<td>".$data['nim']."</td>";
   echo "<td>".$data['namaMhs']."</td>";
   echo "<td><a href=\"".$_SERVER['PHP_SELF']."?op=delete&nim=".$data['nim']."\" onclick=\"return konfirmasi('".$data['nim']."')\">Hapus</a></td>";
   echo "</tr>";
   $no++;
}

?>

</table>
</body>
</html>

Penjelasan script:

Proses penghapusan data atau record pada script ini dilakukan dengan mengklik link yang ada pada setiap baris record. Dalam hal ini, parameter data yang dihapus menggunakan nim mengingat nim adalah sesuatu yang unik.

Pada link tersebut diberikan event onclick() yang berarti akan memicu suatu script apabila link tersebut diclick. Script yang dipicu tersebut berbentuk Javascript, dan diberinama function konfirmasi() dengan parameternya adalah nim yang akan dihapus.

Dalam function konfirmasi(), terdapat perintah confirm(), ini digunakan untuk meminta konfirmasi user tentang suatu action. Konfirmasi ini akan memunculkan kotak dialog yang di dalamnya terdapat tombol OK dan CANCEL.

Maksud perintah  if (tanya == true) return true; adalah jika tombol yang ditekan pada konfirmasi adalah OK, maka function konfirmasi() akan mengembalikan nilai TRUE yang mengakibatkan menjalankan link penghapusan. Jika yang ditekan tombol CANCEL (tanya == false) maka yang dikembalikan oleh konfirmasi() adalah FALSE, yang artinya link penghapusan tidak dijalankan.

Mudah bukan….

 

Bagikan artikel ini jika bermanfaat !

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply