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 Terintegrasimahjong ways menghadirkan sensasi hiburan digital dengan nuansa kemewahanpesona naga emas membawa mahjong ways ke pusat perhatian pecinta gamemahjong ways dan daya tarik pengalaman bermain dengan visual spektakulerjelajahi keindahan simbol klasik dalam petualangan digital mahjong waysmahjong ways tampil memikat dengan perpaduan tradisi dan teknologi modernkemeriahan festival oriental menjadi inspirasi kampanye mahjong waysmahjong ways membawa semangat hiburan baru melalui animasi penuh warnakilauan ubin emas memperkuat identitas visual mahjong ways di era digitalmahjong ways dan inovasi desain yang membangun pengalaman interaktifeksplorasi dunia mahjong ways melalui konsep hiburan bertema kerajaan asiamengapa pengguna kasino online sering mengabaikan batas waktu bermainketika kebiasaan mengakses kasino online mulai sulit dikendalikanfaktor emosional yang membuat sebagian orang terus kembali ke kasino onlinebagaimana kasino online memengaruhi kemampuan pengguna mengambil keputusanalasan pengalaman menang membuat pemain kasino online enggan berhentikasino online dan perubahan kebiasaan yang terjadi tanpa disadari penggunamengapa keinginan mengulang kemenangan sering muncul dalam kasino onlineketika pengguna kasino online mulai kehilangan kendali atas durasi bermainhubungan antara rasa penasaran dan kebiasaan berulang di kasino onlinebagaimana harapan mendapatkan hasil besar memengaruhi pengguna kasino onlinekasino online dalam kajian psikologi tentang dorongan untuk terus bermainmengapa sebagian pemain kasino online kesulitan menerima hasil kekalahanpengaruh kemenangan tidak terduga terhadap pola aktivitas kasino onlineketika kasino online menjadi pelarian sementara dari tekanan kehidupanbagaimana kebiasaan mengejar kerugian terbentuk pada pengguna kasino onlinekasino online dan fenomena berkurangnya kesadaran terhadap risiko finansialalasan notifikasi digital dapat memicu keinginan kembali ke kasino onlinemengapa pengguna kasino online terkadang mengabaikan tanda kelelahan mentalperubahan prioritas sehari hari akibat keterlibatan berlebihan dalam kasino onlineketika harapan kemenangan berikutnya membuat pengguna kasino online terus bertahanmengapa sebagian pengguna kasino online terus bermain meski sudah merasa lelahketika kasino online membuat seseorang sulit membedakan hiburan dan kebiasaanpengaruh rasa penasaran terhadap keputusan pengguna kasino onlinekasino online dan fenomena hilangnya kesadaran waktu saat bermainbagaimana pengalaman kalah mengubah cara pandang pemain kasino onlinealasan sebagian orang kembali ke kasino online setelah berniat berhentiketika harapan mendapatkan kemenangan mengubah prioritas pengguna kasino onlinekasino online dalam pembahasan tentang kontrol diri dan tekanan emosionalmengapa pengguna kasino online terkadang menganggap kerugian sebagai hal sementarahubungan antara kebiasaan digital dan ketergantungan terhadap kasino onlinemengapa mahjong tetap memiliki daya tarik di tengah perubahan hiburan modernmahjong dan peran ingatan visual dalam mengenali susunan ubinbagaimana permainan mahjong menggabungkan pengamatan dan pengambilan keputusanketika mahjong menjadi jembatan interaksi sosial antar generasipengaruh tradisi keluarga terhadap keberlanjutan budaya bermain mahjongmahjong dalam perspektif sejarah perkembangan permainan masyarakat asiamengapa simbol mahjong memiliki identitas visual yang mudah dikenaliperubahan cara generasi muda mengenal mahjong melalui media digitalmahjong dan hubungan antara konsentrasi strategi serta interaksi sosialbagaimana nilai budaya mahjong bertahan melintasi perubahan zaman