CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 4 Delete Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 4 Hapus Data – Hai ketemu lagi dengan saya dan pada postingan ini saya akan membahas tentang delete data dan pada CRUD ini merupakan bagian terakhir dan nanti sobat bisa mencoba untuk hal yang lebih sulit yaitu CRUD menggunakan Ajax no loading. Tentunya ini akan menjadi lebih susah tapi nanti hasilnya akan lebih bagus. Pada postingan ini merupakan paling mudah karena hanya berisi action hapus data. Jika sobat belum melihat postingan saya sebelumnya maka sobat bisa klik link dibawah

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 1 Menampilkan Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 2 Insert Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 3 Update Data

Langsung saja saya berikan contohnya :

1. Pertama buat terlebih dahulu tombol untuk memanggil ke action hapus datanya, contohnya :

<a href="hapus_data.php?aa=<?php echo base64_encode($id) ?>" onclick="javascript: return confirm('Apakah Anda yakin ingin menghapus data ini?')">
    <button class="btn btn-danger btn-sm"> <i class="fa fa-trash"></i> Hapus </button>
</a>

Pada script diatas ada base64_encode($id) artinya id di enkripsi/encoding terlebih dahulu jadi nantinya pada url bukan lagi angka id dari data sobat. Jadinya seperti dibawah

http://localhost/dewan-crud/hapus_data.php?aa=MQ==

Namun jika dklik tombol hapus maka akan muncul dialog box berupa pilihan yes/no. Jika Yes maka akan dieksekusi jika klik No maka tidak terjadi apa-apa.

2. Pada contoh terlihat tag <a> memanggil hapus_data.php dengan kata lain sobat harus membuat file baru dan beri nama hapus_data.php. Kemudian pada file hapus_data.php isikan dengan script dibawah ini

<?php
include 'koneksi.php';

if (isset($_GET['aa'])) {
    // data difilter terlebih dahulu & base64_decode berguna untuk mendeskripsi id yg sebelumnya di enkripsi/encoding
	$id = stripslashes(strip_tags(htmlspecialchars( base64_decode($_GET['aa']) ,ENT_QUOTES)));

	$query = "DELETE FROM tbl_mahasiswa WHERE id=?";
    $dewan1 = $db1->prepare($query);
    $dewan1->bind_param("i", $id);
    
    if ($dewan1->execute()) {
    	echo "<script>alert('Data Berhasil Dihapus');location='index.php';</script>";
    } else {
    	echo "<script>alert('Error');window.history.go(-1);</script>";
    }
}

$db1->close();
?>

Penjelasan :

$id = stripslashes(strip_tags(htmlspecialchars($_GET['aa'] ,ENT_QUOTES)));

Pada code diatas berfungsi untuk menyaring url yang berisikan id karena kita menggunakan GET. Code tersebut sangat-sangat perlu karena untuk menghindari sql-injection atau XSS attack. Code tersebut juga bisa dibuat menjadi sebuah fungsi jadi sobat nanti hanya perlu memanggil nama fungsinya saja tanpa perlu menuliskan panjang-panjang seperti itu berkali-kali. Itu akan saya bahas pada postingan saya lainnya tentang cara menghindari sql-injection dan xss attack. Jika pada tutorial lainnya mungkin hanya akan menjadi

$id = $_GET[‘aa’]

dan itu bisa saja memang tidak ada bedanya namun itu akan menjadikan aplikasi sobat rentan akan hack. Dan saya ingin membiasakan sobat mulai dari awal untuk tidak hanya menyimpan data ke database secara mentah-mentah karena nanti bisa terbawa sampai sobat menyesal nantinya. Namun tentunya pada blog ini saya berikan yang mudah terlebih dahulu baru setelah itu akan saya berikan bagian yang susahnya yang tentunya berbeda postingan. Oleh karena itu rajin-rajinlah sobat untuk mencari postingan pada blog ini.

Untuk memasukkan data ke database terdapat 4 langkah yaitu query, prepare statement, bind param kemudian execute seperti contoh dibawah

$query = "DELETE FROM tbl_mahasiswa WHERE id=?";
$dewan1 = $db1->prepare($query);
$dewan1->bind_param("i", $id);
$dewan1->execute();

Cara dibawah menggunakan metode Object Oriented dimana cara ini merupakan cara yang paling amat jika ingin menyimpan data ke database. Dan sangat direkomendasikan sobat untuk menggunakan cara ini walaupun memang caranya lebih panjang dari sebelumnya. Untuk nilai pada query diisi dengan tanda tanya  (?) dan nilainya ada pada bind param. untuk “i” disesuaikan karena id menggunakan tipe int atau angka maka sobat tuliskan “i” dan jika diisi dengan huruf maka data tidak akan bisa dieksekusi atau akan eror.

Untuk code $db1->close(); berfungsi untuk menutup koneksi terhadap database. Hal ini juga tentunya sangat diperlukan.

 

4. Jika berhasil maka akan muncul alert box seperti dibawah

Dialog box ini berupa pilihan Yes/No bahwa meyakinkan user untuk menghapus atau tidak. Jika klik tombol Oke maka akan dieksekusi dan jika klik Batal maka tidak terjadi apa-apa.

 

Bagaimana CRUD menggunakan MySQLi mudah bukan? ini merupakan cara dasar dalam crud PHP, namun ada cara lagi yang saya suka juga yaitu menggunakan Ajax. Pada postingan selanjutnya nanti akan saya posting CRUD menggunakan Ajax, Bootstrap Modal, dan memunculkan pesan menggunakan Sweet Alert yang menjadikan tampilan lebih bagus dan karena menggunakan Ajax nanti kita bisa membuatnya tanpa loading. Oleh karena itu sobat tunggu saja tanggal mainnya. Oke sekian postingan saya tentang CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 4 Delete Data. Apabila ada pertanyaan silahkan tinggalkan pada kolom komentar dibawah. Untuk menambahkan file upload sobat bisa kunjungi postingan saya yang lainnya karena itu tidak saya bahas pada CRUD ini.

Baca juga :

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 1 Menampilkan Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 2 Insert Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 3 Update Data

CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 4 Delete Data

Cara Membuat Upload File pada PHP dengan Mudah

Membuat CRUD Expert, Upload & Pencarian dengan JQuery, Ajax, Bootstrap Modal, SweetAlert dan WYSIHTML5 pada PHP

 

Jika sobat ingin mendownload tutorial diatas maka sobat bisa klik link dibawah ini :

Sampai jumpa pada postingan saya selanjutnya..

3 thoughts on “CRUD (Create, Read, Update, Delete) pada PHP dan MySQLi – Part 4 Delete Data

Leave a Reply

Your email address will not be published. Required fields are marked *

16 + 4 =