Delete Data di Database Menggunakan Function


ROOT93 - Sebelumnya sudah dijelaskan tentang bagaimana cara menampilkan data menggunakan function, dimana function yang dibuat berisi variabel query. Begitupun pembahasan kali ini, query delete nantinya disimpan didalam function, namuan disini teknik querynya menggunakan prepared statement. Ada beberapa kondisi yang bisa dibuat dalam proses delete data ini, mungkin kita bisa membuatnya menjadi tiga cara atau tiga teknik penulisan.

Baca sebelumnya di root93 : Menampilkan Data di PHP Menggunakan Function

Maksudnya seperti berikut :

  1. Sebelum data di Delete, maka telebih dahulu dilakukan konfirmasi, id data akan didapatkan menggunakan GET, kemudian di POST dan selanjutnya di eksekusi sebagai perintah delete. Namun masalahnya jika seperti ini, ketika user dengan sengaja merubah parameter id di url yang nilai ID nya tidak terdapat di database, maka hasilnya query tetap di eksekusi dan akan menghasilkan nilai benar.

    Contoh : DELETE FROM `datamhs` WHERE `datamhs`.`id` = 3
    Jika misal saya menggunakan query diatas, dan nilai ID 3 tidak terdapat di database/tabel, maka sebenarnya query diatas tidak akan menghasilkan nilai error, melainkan menampilkan pesan 0 baris terpengaruh. (Pencarian dilakukan dalam 0.0000 detik.) maksudnya disana berarti tidak ada error meskipun data yang dimaksud tidak ada. Dan ini memang tidak masalah juga
  2.  Didalam mysqli_stmt_excute() kita bisa mengeksekusi 2 perintah, perintah pertama untuk mendelete data, dan perintah kedua untuk SELECT DATA, dimana jika select data yang dimaksud tidak mengandung data, akan dialihkan ke Halaman Error, didalam eksekusi kedua kita jalankan perintah num_rows if(mysqli_num_rows($result)==1){, jika misal nilainya == 1, kita bisa mengksekusi perintah benar dan yang kedua ada yang salah. Dalam praktiknya query kedua ini bisa digunakan untuk proses unlink gambar jika memang data yang dimaksud ada gambar dan perlu dihapus dari direktori.

    Didalam function query eksekusi kedua nantinya mungkin bisa dibuat seperti ini

    if(mysqli_num_rows($result)==1){
    //nilai benar
    }else{
    //nilai salah
    }

    Atau bisa seperti ini

    if(!mysqli_num_rows($result)==1){
    //nilai salah
    }
  3. Data ditampilkan dulu, dengan melakukan query berdasarkan parameter id yang bersangkutan, jika parameter id yang bersangkutan tidak mengandung unsur data, maka kita bisa mengarahkannya ke halaman error
Dari ketiga cara tersebut, kita akan praktikan cara satu dan keduanya saja. Berikut ini root93 berikan contoh Delete Data di Database Menggunakan Function



FUNCTION CONTOH #1
function delete_data($var_id){
 global $koneksi;
 $sql = "SELECT id FROM datamhs where id =?";
 if($stmt=mysqli_prepare($koneksi, $sql)){
  mysqli_stmt_bind_param($stmt,"i", $param_id);
  $param_id = $var_id;
  
  if(mysqli_stmt_execute($stmt)){
   return true;
  }else{
   return false;
  }
 }
 //tutup statement
 mysqli_stmt_close($stmt);
}

FUNCTION CONTOH #2

Pada function contoh kedua, akan ada dua penulisan atau cara, kalian bisa menggunakannya sesuai kebutuhan

Contoh Pertama
Jika didalam select atau query kedua ada keperluan semisal seperti untuk unlink gambar, maka setelah di num_rows maka data bisa di fetch untuk mendapatkan data dari id yang bersangkutan, jika tidak ada data yang bisa di dapatkan, maka Anda bisa mengarahkannya ke halaman error


function delete_data($var_id){
 global $koneksi;
 $sql = "DELETE FROM datamhs where id =?";
 if($stmt=mysqli_prepare($koneksi, $sql)){
  mysqli_stmt_bind_param($stmt,"i", $param_id);
  $param_id = $var_id;
   /*Query kedua untuk mengrow atau unlink*/
                $sql="SELECT * FROM datamhs where id=?";
                //prepared data
              if($prepare=mysqli_prepare($koneksi, $sql)){
                      // Bind Parameter
                      mysqli_stmt_bind_param($prepare, "i", $param_id);
                       //execute query
                      mysqli_stmt_execute($prepare);
                      //get result
                      $result = mysqli_stmt_get_result($prepare);
                      //jika data ditemukan data yang ingin dihapus
                      if(mysqli_num_rows($result)==1){
                      //jalankan sesuatu jika memang butuh, misal seperti unlink gambar
                                       
                    }else{
                      //jika datanya tidak temukan maka arahkan ke halaman error
                       header("location: error");
                        exit();                   
              }
                }
                
  if(mysqli_stmt_execute($stmt) && ($prepare)){
   return true;
  }else{
   return false;
  }
 }
 //tutup statement
 mysqli_stmt_close($stmt);
}



Contoh Kedua
Pada contoh kedua, didalam num rows, kita bisa tambahkan karakater atau tanda seru (!), maksudnya jika data tidak memiliki nilai, maka langsung saja arahkan ke halaman error, atau selanjutnya bisa dibuat percabangan else, jika memang ada perintah lain yang ingin di eksekusi

function delete_data($var_id){
 global $koneksi;
 $sql = "DELETE FROM datamhs where id =?";
 if($stmt=mysqli_prepare($koneksi, $sql)){
  mysqli_stmt_bind_param($stmt,"i", $param_id);
  $param_id = $var_id;
   /*Query kedua untuk mengrow atau unlink*/
                $sql="SELECT * FROM datamhs where id=?";
                //prepared data
              if($prepare=mysqli_prepare($koneksi, $sql)){
                      // Bind Parameter
                      mysqli_stmt_bind_param($prepare, "i", $param_id);
                       //execute query
                      mysqli_stmt_execute($prepare);
                      //get result
                      $result = mysqli_stmt_get_result($prepare);
                      //jika data ditemukan data yang ingin dihapus
                      if(!mysqli_num_rows($result)==1){
  //jika tidak perintah yang mau di eksekusi, maka arahkan saja ke halaman error
                      header("location:error");
                    }
                }
                
  if(mysqli_stmt_execute($stmt) && ($prepare)){
   return true;
  }else{
   return false;
  }
 }
 //tutup statement
 mysqli_stmt_close($stmt);
}

KONFIRMASI SEBELUM DELETE DATA
Delete Data di Database Menggunakan Function root93
Konfirmasi sebelum delete data
Sumber : root93

Idealnya sebelum data di delete, maka dilakukan konfirmasi terlebih dahulu, data tidak akan dihapus jika user membatalkan. Namun jika user mengklik tombol Ya, artinya parameter id yang ada di url atau di input hiddden akan dikirimkan sebagai perintah kedalam function yang sebelumnya telah dibuat.

Baik menggunakan function pertama atau kedua (penulisan pertama atau kedua) maka cara meanggilnya sama, yaitu cukup seperti ini if(delete_data($_POS[])) , didalam main kode tidak ada query – query, hanya memanggil functionnysa saja.

Contoh lengkapanya :

<?php
include ('koneksi.php');
include ('function.php');
?>
<html>
<head>
 <title>DELETE DATA ROOT93</title>
</head>
<body>

<?php
if(isset($_POST['id']) && !empty($_POST['id'])){
 //panggil function delete data
 if(delete_data(trim($_POST['id']))){
  echo "data berhasil dihapus";
  echo "<a href='tampil_data.php'>Tampil data</a>";
 }else{
  echo "Gagal mendelete data";
 }
//close koneksi
mysqli_close($koneksi);

}else{

 if(empty(trim($_GET["id"]))){
  header("location:error");
 }
}


?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST">
<input type="hidden" name="id" value="<?php echo trim($_GET['id']); ?>" />
<p> Yakin ingin menghapus data ?</p>
<input type="submit" value="Ya">
<a href="javascript:history.back()">Kembali</a>
</form>
</body>
</html>


Sampai disini  kita telah selesai membuat function delete data dengan prepared statement di PHP dimana query delete datanya disimpan atau di eksekusi di dalam function yang  kita buat sendiri. Jika memang ada hal - hal yang keliru, mohon untuk diluruskan.
(Ahmad Zaelani)
 

2 Responses to "Delete Data di Database Menggunakan Function"

  1. Segera laksanakan men delet data yang ada d database nya dengan senang hati serta riang gembira...karena dengan mendelet di database menggunakan function saya akan terbebas dari data-data yang sudah tidak berguna lagi....
    kalau inget

    ReplyDelete
  2. Tanza Erlambang - Speed UpDecember 7, 2018 at 10:01 AM

    oh, begitu ya...
    nambah ilmu ….terima kasih

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin

mahjongways menghadirkan evolusi visual digital melalui perpaduan animasi adaptif dan teknologi antarmuka modernintegrasi teknologi real time mengubah cara platform digital mengelola interaksi dan respons penggunaperan random number generator menjaga independensi hasil pada sistem permainan digital modernmengenal cara mahjongways mengembangkan pengalaman interaktif melalui sistem respons simbol dan desain grafis digitalarsitektur microservices menjadi fondasi penting dalam membangun infrastruktur platform digital yang lebih fleksibelmengenal volatilitas dan distribusi hasil dalam karakteristik matematis permainan digital berbasis rngmahjong ways dan evolusi budaya digital melalui perpaduan warisan tradisional dengan teknologi interaktif moderntransformasi infrastruktur digital memperlihatkan peran penting otomatisasi dalam menjaga stabilitas sistemmahjongways memperlihatkan perkembangan desain permainan digital melalui optimalisasi animasi dan transisi visualgame pg soft dan perubahan standar desain visual dalam industri hiburan digitalmengapa game pg soft sering dibahas dalam perkembangan permainan berbasis smartphonedi balik game pg soft bagaimana teknologi animasi membentuk pengalaman penggunagame pg soft dalam sorotan perbedaan antara fitur interaktif dan mekanisme acakketika tampilan game pg soft menjadi bahan diskusi tentang psikologi warnamengulas game pg soft dari sisi perkembangan antarmuka dan kenyamanan navigasigame pg soft dan tantangan membedakan informasi resmi dari klaim komunitasbagaimana game pg soft mengadaptasi elemen budaya dalam konsep visual permainangame pg soft dan pentingnya memahami perbedaan antara rtp serta hasil sesaatfenomena konten video pendek yang membentuk persepsi publik tentang game pg softgame online dan fenomena munculnya pemimpin komunitas dari kalangan pemain biasamengapa sistem reputasi menjadi bagian penting dalam interaksi game onlineketika game online menghadirkan tantangan baru dalam menjaga etika komunikasiperubahan pola kerja sama tim menjadi sorotan dalam perkembangan game onlinegame online dan peran sistem moderasi dalam membangun lingkungan bermain yang sehatbagaimana game online menghubungkan komunitas kecil menjadi jaringan globalfenomena pemain game online yang mengembangkan keterampilan organisasi komunitasgame online dalam kajian perubahan kebiasaan sosial di ruang virtualmengapa transparansi sistem peringkat menjadi perhatian dalam komunitas game onlineketika game online menjadi ruang kreatif bagi pembuat konten dan pemaingame digital dan perubahan cara pengembang membangun dunia virtual yang realistismengapa teknologi haptic feedback menjadi pembahasan menarik dalam game digitalketika game digital menghadirkan karakter yang bereaksi terhadap keputusan pemainperan pencahayaan dinamis dalam membangun suasana permainan game digitalgame digital dan tantangan menjaga identitas seni di tengah perkembangan aibagaimana sistem penyimpanan cloud mengubah pengalaman mengakses game digitalfenomena game digital yang mengangkat cerita rakyat menjadi petualangan interaktifgame digital dalam sorotan perubahan cara studio indie mengembangkan karyamengapa pelestarian game digital lama menjadi topik penting dalam arsip teknologiketika game digital digunakan untuk mengenalkan konsep sains melalui simulasigates of olympus dan kisah mitologi zeus yang diadaptasi menjadi hiburan digitalmengapa sweet bonanza menggunakan tema permen dalam membangun identitas visual gamestarlight princess dan peran karakter fantasi dalam perkembangan desain slot modernfenomena big bass bonanza yang menggabungkan tema memancing dengan mekanisme permainansugar rush 1000 dan cara animasi warna warni membentuk pengalaman visual penggunamengenal the dog house megaways dari sisi desain karakter dan variasi fitur gamegates of hades mengangkat dunia bawah mitologi yunani ke dalam konsep permainan digitaldi balik sweet rush bonanza ada konsep pengali yang menarik dibahas secara matematisfortune of olympus dan perbedaan desain mekanisme permainan bertema dewa yunanimengapa gates of olympus 2500 menarik dikaji dari sisi evolusi seri game digital