CRUD PHP Native dengan MySQLI Extension – Update and Delete Anggota (3)

By | 21 Februari 2020

MWI – Setelah data anggota pustaka berhasil ditampilakn dan ditambahkan materi kita lanjutkan dengan membuat fasilitas Edit dan Hapus berfungsi, langkah awal buka kembali file index.php yang berada pada folder anggota dan edit bagian ini …

    echo "<td>" . $r['status'] . "</td>";
    //echo '<td>Edit | Hapus</td>'; //ganti bagian ini menjadi
    echo '<td><a href="edit.php?id='.$r['id'].'">Edit</a> | <a href="hapus.php?id='.$r['id'].'" onclick="return confirm(\'Yakin Akan dihapus?\')">Hapus</a></td>';
echo "</tr>";

Hasil tampilannya ada seperti ini, dan Edit atau hapus dapat diklik.

Modul Anggota

Jika tombol Edit diklik akan langsung membuka file edit.php, sedang tombol Hapus diklik akan muncul konfirmasi apakah benar akan dihapus atau tidak, jika dijawab No langsung kembali ke index.php, jika di jawab Yes akan membuka file hapus.php seperti pada gambar berikut

Lalu buat file edit.php letakan dalam folder pustaka/anggota dan isi dengan code sebagai berikut:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Edit Anggota Perpustakaan</title>
</head>
<body>
    <h1>Modul Edit Anggota</h1>
<?php
//buat variabe $id ambil dari umpan GET
$id=$_GET['id'];
//panggil koneksi database
include "../koneksi.php";
//cari anggota berdasarkan id dari umpan GET
$sql="SELECT * FROM anggota WHERE id='$id'";
$query=mysqli_query($koneksi,$sql);
$r=mysqli_fetch_assoc($query);
?>
    <form action="update.php" method="post" enctype="multipart/form-data">
        <table>
            <tr>
                <td>Nama *</td>
                <td><input type="text" name="nama" placeholder="Nama Lengkap" size="50" value="<?php echo$r['nama'];?>" required></td>
            </tr>
            <tr>
                <td>HandPhone</td>
                <td><input type="text" value="<?php echo$r['hp'];?>" name="hp"></td>
            </tr>
            <tr>
                <td>Alamat</td>
                <td><textarea name="alamat" cols="50" rows="5" placeholder="Tulis alamat lengkap anda disini"><?php echo$r['alamat'];?></textarea></td>
            </tr>
            <tr>
                <td>Tanggal Gabung</td>
                <td><input type="date" name="tgabung" value="<?php echo$r['tgabung'];?>"></td>
            </tr>
            <tr>
                <td>Status</td>
					<td><input type="radio" name="status" value="Aktif" <?php if($r['status']=='Aktif') echo " checked";?> />Aktif &nbsp;&nbsp;
					<input type="radio" name="status" value="Non Aktif" <?php if($r['status']=='Non Aktif') echo " checked";?> />Non Aktif</td>
            </tr>
            <tr>
				<td><input type="hidden" name="id" value="<?php echo$r['id'];?>">
                <input type="reset"</td>
                <td><input type="submit" value="Update" name="update"></td>
            </tr>
        </table>
    </form>
</body>
</html>

Akan menghasilkan tampilan seperti ini, lalu ganti isinya dan klik update

Agar dapat diupdate buat file sesuai dengan action di form action=”update.php”, berinama update.php pada folder anggota dan isi dengan

<?php
//cek apakah ini hasil dari submit dari form Edit atau bukan
if(isset($_POST['update'])){
    include_once("../koneksi.php");
    $id      = $_POST['id'];
    $nama    = $_POST['nama'];
    $hp      = $_POST['hp'];
    $alamat  = $_POST['alamat'];
    $tgabung = $_POST['tgabung'];
    $status  = $_POST['status'];

    //Berikan perintah update
    $sql = "UPDATE anggota SET nama='$nama', hp='$hp', alamat='$alamat', tgabung='$tgabung', status='$status' WHERE id='$id'";
    $simpan=mysqli_query($koneksi, $sql);
    if($simpan){
        header('location:index.php');
    }else{
		include "index.php";
        echo '<script language="JavaScript">';
            echo 'alert("Data Gagal Diupdate.")';
        echo '</script>';
    }
}else{
	echo "Jangan Akses langsung kemari, cek name pada submit <a href='index.php'>Kembali</a>";
}
?>

Cek dengan mengedit salah satu dan lihat hasilnya, apakah langsung berubah atau tidak? Jika tak perubahancoba trace kesalahan misal jadikan baris komentar untuk header dan buat perintah var_dumop diatasnys seperti ini

	var_dump($sql);
        //header('location:index.php');

Lihat hasilnya, misal jadi seperti ini

string(158) "UPDATE anggota SET nama='Muhamad Akmal Hidayat', hp='0812232323224', alamat='Jl. Citatah Cibinong Bogor', tgabung='2019-06-03', status='Non Aktif' WHERE id=''" 

itu artinya id dari POST tidak menghasilkan sesuatu yang diharapkan sehingga harus dibetulkan dari file edit.php

Jika sudah sesuai, jadikan baris komentar untuk var_dump dan hilangkan tanda komentar untuk header menjadi

	//var_dump($sql);
        header('location:index.php');

Jika beres lanjut untuk materi Delete alias hapus, buat file hapus.php pada folder anggota dan isi dengan

<?php
//cek akses lewat menu di index.php atau akses file langsung
if(isset($_GET['id'])){
	include "../koneksi.php";
	$id=$_GET['id'];
	$sql   = "DELETE FROM anggota WHERE id='$id'";
	$hapus = mysqli_query($koneksi,$sql);
	if($hapus){
		header("Location: index.php");
		//pengecekan jika hasil belum sesuai harapan
		//var_dump($sql);
	}else{
		//var_dump($sql);
		echo 'Data Kelas GAGAL di Hapus';
		echo '<a href="index.php">Kembali</a>';
	}
}else{
	echo "Jangan Akses langsung kemari, cek name pada submit <a href='index.php'>Kembali</a>";
}
?>

JIka masih belum sesuai, jadikan baris komentar pada header dan buat code diatas dengan var_dump($sql); lalu lihat dan baca pesannya, lakukan perbaikan sesuai pesan yang muncul.

Source code sudah diupdate di Github Muhidin CRUDnative

Demikian Materi CRUD untuk modul anggota dibuat semoga ada manfaatnya dan seamat belajar. Sukses selalu untuk kita semua. Aamiin, Sahabat belajarmu ms (ms).

One thought on “CRUD PHP Native dengan MySQLI Extension – Update and Delete Anggota (3)

  1. Pingback: CRUD PHP Native dengan MySQLI Extension - Daftar Isi | Muhidin Saimin

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.