CRUD PHP Native dengan MySQLi Extension – Update & Delete Anggota(3)

By | Maret 5, 2023
This entry is part 3 of 5 in the series CRUD PHP Native dengan MySQLi Extension

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

Buat file update file yang 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 perubahan coba trace kesalahan misal jadikan baris komentar untuk header dan buat perintah var_dump diatasnya seperti ini

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

Lihat hasilnya, apabila terlihat 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');

Beres dan lanjutkan dengan 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>";
}
?>

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

Source code dapat didownload pada Github Muhidin Saimin di CRUDnative

Demikian Materi CRUD untuk modul anggota bagian 3 dibuat, untuk bagian 2 ada disini dan bagian 4 ada disini, semoga bermanfaat dan selamat belajar. Sukses selalu untuk kita semua. Aamiin, dari sahabat belajarmu musa (ms).

Series Navigation<< CRUD PHP Native dengan MySQLi Extension – Anggota (2)CRUD PHP Native dengan MySQLi Extension – Buku (4) >>

One thought on “CRUD PHP Native dengan MySQLi Extension – Update & 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 *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.