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

nagabet76slot gacorslot online1213141516Slot Online Menghadirkan Pengalaman Digital Yang Didukung Pemrosesan Data Secara Real TimeMahjongways Menganalisis Pola Visual Dan Dinamika Simbol Berdasarkan Pemrosesan Data DigitalMahjongways Mengembangkan Dinamika Permainan Melalui Pengelolaan Data Dan Elemen Visual TerintegrasiAnalisis Komputasi Modern Membantu Memetakan Dinamika Sistem Digital Berdasarkan Data ObservasiMember Baru Mendorong Dinamika Komunitas Digital Menuju Pengalaman Yang Lebih Aktif Dan Menarikslot onlinemahjongwayasarsitektur layananpemrosesan data adaptifmember baruSlot Online Terbaru Menghadirkan AnalisisScatter Hitam Dianalisis Melalui PemetaanPola Scatter Hitam Membentuk Distribusi Visual Yang Dapat Dikaji Menggunakan Komputasi AdaptifArsitektur Teknologi TerdistribusiTeknologi Visualisasi DataMahjongways Mengembangkan Interaksi Visual Melalui Integrasi Simbol Digital Yang DinamisAnalisis Mahjongways Memetakan Dinamika Visual Dan Respons Antarmuka Berbasis DataScatter Hitam Dianalisis Melalui Pemetaan Struktur Simbol Digital Berbasis Komputasi AdaptifAlgoritma Scatter Hitam Membantu Mengidentifikasi Dinamika Pola Melalui Analisis Data ObservasiPg Soft Mengembangkan Sistem Rendering Adaptif Untuk Mendukung Visualisasi Digital ModernTeknologi Pg Soft Mengoptimalkan Pemrosesan Grafis Melalui Arsitektur Rendering TerintegrasiTeknologi Pemodelan Data Membantu Menganalisis Dinamika Informasi Pada Ekosistem Digital ModernArsitektur Komputasi Terdistribusi Meningkatkan Keandalan Pengelolaan Data Pada Platform DigitalTeknologi Kecerdasan Komputasional Mendorong Pengembangan Sistem Digital Yang Lebih AdaptifPemrosesan Data Modern Membantu Memetakan Pola Informasi Melalui Pendekatan Komputasi TerukurTeknologi Integrasi Data Mempermudah Sinkronisasi Informasi Dalam Lingkungan Digital TerpaduVisualisasi Komputasi Modern Membantu Menginterpretasikan Perubahan Pola Pada Sistem Digital KompleksTeknologi Otomasi Data Meningkatkan Efisiensi Pengelolaan Informasi Pada Infrastruktur DigitalModel Komputasi Adaptif Mendukung Pengembangan Teknologi Digital Melalui Analisis Data BerkelanjutanPengembangan Pg Soft Mengintegrasikan Teknologi Rendering Dengan Interaksi Visual Yang ResponsifPg Soft Menerapkan Komputasi Visual Untuk Meningkatkan Efisiensi Pengolahan Elemen DigitalEksplorasi Scatter Hitam Memetakan Distribusi Simbol Melalui Model Analitik Digital TerintegrasiPola Scatter Hitam Dikaji Menggunakan Pendekatan Visualisasi Data Dan Pemodelan StatistikMahjongways Menghadirkan Pendekatan Visual Interaktif Melalui Pemrosesan Simbol Yang AdaptifEksplorasi Mahjongways Mengungkap Perubahan Pola Visual Dalam Lingkungan Digital Terintegrasiprediksi mahjong online dan batas analisis peluangmembaca statistik mahjong tanpa mengabaikan faktor acakmahjong dan mitos prediksi hasil di komunitas digitalbisakah data membantu menganalisis permainan mahjongprediksi mahjong dari sudut pandang probabilitas digitalpola visual mahjong bukan jaminan hasil permainanteknologi rng dan keterbatasan prediksi game mahjongmengenali perbedaan analisis data dan tebakan mahjongfenomena prediksi mahjong dalam perbincangan pengguna internetmengulas peluang mahjong dengan pendekatan statistikkasino online dalam sorotan perkembangan hiburan berbasis internetmemahami sistem acak dan peluang di kasino onlinekasino digital dan tantangan keamanan transaksi elektronikmenelusuri dampak sosial fenomena kasino onlineteknologi di balik perubahan layanan kasino onlinekasino online dari perspektif regulasi dan literasi digitalrisiko finansial yang perlu dikenali dalam kasino onlinemedia digital mengulas perkembangan industri kasino onlineantara teknologi dan perlindungan pengguna kasino onlinemengenali mitos peluang menang dalam kasino berbasis internetberita terkini mahjong online menjadi sorotan pengguna digitalfenomena mahjong online kembali mewarnai pemberitaan gamemedia digital mengulas perubahan tren mahjong onlinemahjong online dan perbincangan baru di komunitas internetperkembangan mahjong online masuk sorotan industri hiburanlaporan terbaru menyoroti popularitas mahjong onlinemahjong online di tengah perubahan arah game digitalsorotan media hari ini membahas fenomena mahjong onlinetren mahjong online mengundang perhatian pengamat dunia digitalkabar terkini seputar mahjong online dan budaya internettren mahjong anak muda kini jadi sorotan media digitalanak muda dan popularitas mahjong di linimasa internetfenomena mahjong mewarnai perbincangan generasi mudamengapa mahjong online menarik perhatian anak mudamedia sosial menyoroti tren mahjong di kalangan remajamahjong dan pergeseran gaya hiburan generasi digitaltren mahjong anak muda dilihat dari sudut budaya internetkomunitas digital membahas popularitas mahjong di kalangan pemudamahjong masuk berita tren hiburan anak muda terkiniliterasi digital jadi bagian penting tren mahjong anak mudaqris pg soft menjadi bahasan dalam tren transaksi digitalberita digital mengulas qris dan layanan game pg softmengenal keamanan qris pada transaksi platform gamepg soft dan qris dalam sorotan ekosistem pembayaran elektronikperkembangan qris memicu diskusi di industri game digitalmemahami verifikasi transaksi qris pada layanan game onlineqris pg soft dilihat dari perspektif literasi keuangan digitalmedia online menyoroti sistem pembayaran qris dan gametransaksi elektronik pg soft dan pentingnya keamanan penggunaqris dan pg soft dalam perbincangan teknologi pembayaranqris mahjong online masuk sorotan berita transaksi digitaltren pembayaran qris dalam perbincangan mahjong onlinemahjong dan qris dari sisi keamanan transaksi elektronikmemahami alur verifikasi qris pada layanan mahjong onlineperkembangan pembayaran digital dan fenomena mahjongqris mahjong jadi topik literasi keuangan di ruang digitalmenelaah risiko transaksi qris di platform game onlineberita terkini membahas qris dan mahjong digitalsebelum memindai qris pahami identitas penerima transaksimahjong online dan pentingnya transparansi pembayaran digital