- CRUD PHP Native dengan MySQLI Extension – Database (1)
- CRUD PHP Native dengan MySQLi Extension – Anggota (2)
- CRUD PHP Native dengan MySQLi Extension – Update & Delete Anggota(3)
- CRUD PHP Native dengan MySQLi Extension – Buku (4)
- CRUD PHP Native dengan MySQLI Extension – Daftar Isi
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.
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
<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).
Pingback: CRUD PHP Native dengan MySQLI Extension - Daftar Isi | Muhidin Saimin