Wednesday, July 10, 2019

PHP Programming 8 - Database PHP MySQL CRUD DELETE

Assalamu'alaikum

Selamat sore, salam programming!!. Di latihan ini masih membahas pembahasan yang sama. Jika sebelumnya pembahasan tentang CRUD mengenai menampilkan data dari database (READ), kali ini kita akan coba buat button untuk menghapus data yang ada pada database MySQL. Walau sebenernya tidak bisa di bilang button juga sih, karena disini nantinya kita akan menggunakan hyperlink untuk mengarahkan tombol deletenya. Yang perlu di perhatikan dari PHP MySQL ini adalah method form penarikan dan pengiriman datanya yang menggunakan method GET dan POST.

Send Method GET

yang pertama yang ingin saya bahas adalah button delete terlebih dahulu. Button delete disini saya memaksimalkannya dengan memanfaatkan method GET. Dimana method GET ini saya letakkan hyperlink terhadap tulisan "delete" untuk di arahkan ke statement perbandingan IF Else.


Seperti yang sudah pernah saya jelaskan di latihan latihan sebelumnya, method GET adalah method yang menggunakan URL Bar untuk pengiriman datanya. Dimana penulisan URL instruksi method GET di lakukan setelah simbol tanda tanya (?). Di method ini terdapat 2 variabel data yang dikirimkan, yaitu variabel operation (op) dan variabel id (id). Variabel op adalah patokan untuk pengarahan ke statement percabangan dan variabel id digunakan untuk menangkap ID data yang mana yang mau di hapus.

Sehingga URLnya nanti akan tertulis seperti ini

latihan16.4.php?op=delete&id=[nomor id data yang ingin dihapus]
Untuk menangkap id yang ingin di hapus kita bisa menggunakan variabel $row yang sudah dibuat sebelumnya yang fungsinya untuk menampilkan data pada database. Sehingga jika ingin menangkap id, kita tinggal arahkan $rownya ke kolom id. Sehingga, jika kita menerapkan pada tombol delete, kurang lebih script hyperlinknya akan seperti contoh berikut ini.   

<a href=latihan16.4.php?op=delete&id=" . $row["id"] . "> Delete </a> 

Receive Method GET

Jika sudah di lempar ke URL bar dengan menggunakan hyperlink, pada script latihan kita tambahkan statement IF Else untuk menangkap URL tersebut dengan method Get. Yang di tangkap pertama disini adalah variabel op=delete. Artinya jika ada variabel op dengan value delete, maka akan di proses ke statement percabangan IF Else.


Note : instruksi isset digunakan untuk mencari tau apakah variabel op termasuk variabel atau bukan. Karena disini variabel op tidak menggunakan s dolar ($). Dan kalaupun tidak menggunakan instruksi isset, method GET dan instruksi delete tetap akan berjalan, namun hanya muncul pesan error saja. 

if (isset($_GET['op'])=="delete"){
    //action apa yang akan di lakukan
}
Selanjutnya, apa yang akan kita isi pada statement IF else ketika method Get terhadap variabel op sudah di tangkap? Yang pertama di lakukan adalah menangkap variabel id. Tujuannya agar tau, record atau baris data mana yang ingin di hapus. 

if (isset($_GET['op'])=="delete"){
    $id = $_GET['id'];
}

Variabel Instruksi Delete Query

Setelah variabel id di tangkap dan di masukan ke variabel id yang baru kita buat. Langkah selanjutnya adalah menjalankan querynya. Instruksi query yang digunakan adalah instruksi DELETE terhadap data dengan ID yang sudah di simpan pada variabel $id. Hasil perintah query yang di tampung di dalam variabel $delete, diarahakan kedalam parameter perintah PHP SQL mysqli_query($conn, $delete) untuk di jalankan instruksi deletenya.

if (isset($_GET['op'])=="delete"){
    $id = $_GET['id'];
    $delete = "DELETE FROM data_tamu WHERE id=$id";
    $con=mysqli_query($conn, $delete);
}

Direct Header

Jika sudah seperti ini, perintah button delete sudah berfungsi dan ketika di klik akan langsung menghapus record tabel data yang ingin dihapus. Untuk menambahkan sedikit, kita bisa memberikan perintah header yang digunakan untuk keamanan method GET. Dengan menggunakan script header ini, user yang menggunakan aplikasi tidak akan tau variabel apa yang kita gunakan untuk menghapus record data sehingga user tidak sembarang inject number yang di kolom url browser. 

if (isset($_GET['op'])=="delete"){
    $id = $_GET['id'];
    $delete = "DELETE FROM data_tamu WHERE id=$id";
    $con=mysqli_query($conn, $delete);
    header('location:./latihan16.4.php');
}
Berikut contoh lengkap script phpnya. 

<?php
    include "db.php";
  
    $sql = "SELECT * FROM data_tamu";
    $result = mysqli_query($conn, $sql);
  
    if (isset($_GET['op'])=="delete"){
        $id = $_GET['id'];
        $delete = "DELETE FROM data_tamu WHERE id=$id";
        $con=mysqli_query($conn, $delete);
        header('location:./latihan16.4.php');
    }

      
    if (mysqli_num_rows($result)>0){
        $no=1;
        echo "<table border=1 cellpadding=5 cellspacing=0 >";
        echo "<tr>
        <td> No</td>
        <td>Nama</td>
        <td>Alamat</td>
        <td>Email</td>
        <td>No HP</td>
        <td>Option</td>
        </tr>";
      
        while ($row = mysqli_fetch_assoc($result)){
            echo "<tr bgcolor = " . belang($no) . ">
            <td>" . $no . "</td>
            <td>" . $row["nama"] . "</td>
            <td>" . $row["alamat"] . "</td>
            <td>" . $row["email"] . "</td>
            <td>" . $row["no_hp"] . "</td>
            <td>" . "<a href=latihan16.4.php?op=delete&id=" . $row["id"] . "> Delete </a></td></tr>";
            $no++;
        }
        echo "</table>";
    }
    else {
        echo"0 Result";
    }
    mysqli_close ($conn);
  
    echo "<br><center>&copy; Mahasiswa Mercu Buana Bekasi Pemrograman Web Genap 2019 </center>"
?>
kira-kira hasilnya akan seperti contoh berikut.
 

Demikian penjelasan tentang CRUD delete pada Database MySQL di PHP. Semoga bermanfaat bagi pembaca. Sekian dari saya, jika ada yang ingin di tanyakan bisa letakkan di komentar. Terima kasih sudah berkujung, sampai berjumpa di pembahasan berikutnya. Sala Programming!!. 

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment