Untuk membuat sistem Update / Edit & Delete data dari database tentu harus ada datanya terlebih dahulu, sebelumnya situs ini sudah mempublikasikan tutorial tentang cara insert / upload data ke database di situs / file PHP silahkan dilihat dan diikuti tutorialnya karena tutorial di situs ini saling berkaitan. Tutorial ini juga menggunakan MySQLi Statement, sama seperti tutorial-tutorial PHP sebelumnya.
Setelah berhasil membuat sistem insert, silahkan buat sistem menampilkan data seperti yang dijelaskan pada tutorial insert sebelumnya. Misalnya kita tampilkan data dari database didalam sebuah table, lihat disini bagaimana cara menampilkan data dari database jika belum mengetahui caranya.
Selanjutnya, setelah berhasil menampilkan data silahkan buat tombol Update/Edit dan Delete untu kmasing-masing pengguna (misalnya targetnya adalah daftar pengguna / daftar akun) seperti ini: (lihat gambar).
Silahkan tambahkan 2 tombol tersebut di sebelum penutup table supaya secara otomatis looping / mengulang (menampilkan berulang-ulang disetiap baris). Contoh kode:
<table class="table table-striped"> <thead> <th class="text-center">ID</th> <th class="text-center">Username</th> <th class="text-center">Email</th> <th class="text-center">No HP</th> <th class="text-center">Kota</th> <th colspan="2"></th> </thead> <tbody style="height: 100vh;"> <?php if(mysqli_num_rows($query)) {?> <?php while($row = mysqli_fetch_array($query)) {?> <tr> <td class="text-center"><?php echo $row['id'] ?></td> <td class="text-center"><?php echo $row['username'] ?></td> <?php if($row['email']=="") {?> <td class="text-center"> - </td> <?php }else {?> <td class="text-center"><?php echo $row['email'] ?></td> <?php }?> <?php if($row['nohp']=="") {?> <td class="text-center"> - </td> <?php }else {?> <td class="text-center"><?php echo $row['nohp'] ?></td> <?php }?> <?php if($row['kota']=="") {?> <td class="text-center"> - </td> <?php }else {?> <td class="text-center"><?php echo $row['kota'] ?></td> <?php }?> <td><a href="index.php?update-akun=<?php echo $row['id'] ?>"><button class="btn btn-info">Update Profil</button></a></td> <td><a href="index.php?delete-akun=<?php echo $row['id'] ?>"><button class="btn btn-danger">Hapus</button></a></td> </tr> <?php } ?> <?php } ?> </tbody> </table>
Jika mengikuti tutorial PHP riobermano.com dari awal pasti lebih mudah dan cepat memahami tutorial dan kode-kode di tutorial ini. Klik disini untuk mengetahui lebih lanjut tentang looping / perulangan di PHP.
Disini saya contohkan 2 tombol saja yaitu Update Profil fungsinya untuk mengedit/memperbarui profil tersebut dan Delete fungsinya untuk menghapus profil / akun tersebut. Pada link nya (a href) silahkan masukkan link yang menuju ke masing-masing sistemnya (tombol edit ke halaman yang memiliki sistem edit dan begitupun tombol delete menjalankan file yang memiliki sistem delete).
Saya contohkan dengan parameter, jadi index.php?update-akun dan index.php?delete-akun. Artinya ini merupakan halaman dinamis, tidak meloading / memuat semua halaman namun hanya bagian body nya saja yang diganti / berbeda dengan halaman index.php aslinya. Ketika diarahkan ke index.php?update-akun saya ingin menampilkan data yang ada didalam file update-akun.php maka pada file index.php silahkan buat kondisi seperti tutorial-tutorial sebelumnya.
Contoh kondisi di halaman index.php untuk menampilkan file / halaman sebagai parameter:
if(isset($_GET['profil'])) { include "assets/includes/profil.php"; }else if(isset($_GET['daftar-blog']) || isset($_GET['laman-blog-author']) ) { include "assets/includes/daftar-blog-by.php"; }else if(isset($_GET['post-pending']) || isset($_GET['laman-post-pending']) ) { include "assets/includes/pending-post.php"; }else if(isset($_GET['edit-post'])) { include "assets/includes/edit-post.php"; }else if(isset($_GET['delete-post'])) { include "assets/includes/delete-post.php"; }else if(isset($_GET['daftar-akun'])) { include "assets/includes/daftar-akun.php"; }else if(isset($_GET['cari-akun'])) { include "assets/includes/cari-akun.php"; }else if(isset($_GET['cari-jurusan'])) { include "assets/includes/cari-jurusan.php"; }else if(isset($_GET['cari-komentar'])) { include "assets/includes/cari-komentar.php"; }else if(isset($_GET['tambah-jurusan'])) { include "assets/includes/tambah-jurusan.php"; }else if(isset($_GET['tambah-akun'])) { include "assets/includes/tambah-akun.php"; }else if(isset($_GET['update-akun'])) { include "assets/includes/update-akun.php"; }else if(isset($_GET['semua-akun']) || isset($_GET['laman-akun'])) { include "assets/includes/semua-akun.php"; }else if(isset($_GET['update-akun'])) { include "assets/includes/update-akun.php"; }else if(isset($_GET['delete-akun'])) { include "assets/includes/delete-akun.php"; }else if(isset($_GET['delete-jurusan'])) { include "assets/includes/delete-jurusan.php";
Dengan begitu, kita tidak perlu lagi membuat halaman penuh secara keseluruhan cukup mengganti isi <body> dari halaman home / index.php menjadi menampilkan apa yang kita perlukan misalnya menampilkan formulir insert / daftar anggota.
Itu hanya sedikit penjelasan tambahan saja untuk yang belum mengetahui penggunaan parameter, sekarang kembali ke topik utama.
Membuat Sistem Edit / Update
Karena disini sudah saya tentukan ketika url mengarah parameter index.php?update-akun akan membuka / menampilkan isi dari file update-akun.php maka silahkan buat file baru dengan nama update-akun.php. Didalam file update-akun.php ini tempelkan kode berikut:
<?php $id_akun = $_GET['update-akun']; $edit = mysqli_query($koneksi, "SELECT * FROM akun WHERE id = '$id_akun'"); $row_edit = mysqli_fetch_array($edit); $jurusan = mysqli_query($koneksi, "SELECT * FROM jurusan ORDER BY nama_jurusan ASC"); if(isset($_POST['submit-update-akun'])) { $id_akun = $_POST['id_akun']; $id_jurusan = $_POST['pilih_jurusan']; $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; $namadepan = $_POST['namadepan']; $namabelakang = $_POST['namabelakang']; $semester = $_POST['semester']; $statusakun = $_POST['statusakun']; $slogan = $_POST['slogan']; $tempatkerja = $_POST['tempatkerja']; $alamat = $_POST['alamat']; $kota = $_POST['kota']; $nohp = $_POST['nohp']; $ipk = $_POST['ipk']; $tentangsaya = $_POST['tentangsaya']; $date = date("Y-m-d H:i:s"); $file_name = $_FILES['file']['name']; $tmp_name = $_FILES['file']['tmp_name']; if($file_name=="" || empty($file_name)) { mysqli_query($koneksi, "UPDATE akun SET id_jurusan = '$id_jurusan', username = '$username', password = '$password', email = '$email', namadepan = '$namadepan', namabelakang = '$namabelakang', semester = '$semester', id_statusakun = '$statusakun', slogan = '".mysqli_real_escape_string($slogan)."', tempatkerja = '$tempatkerja', alamat = '$alamat', kota = '$kota', nohp = '$nohp', tentangsaya = '".mysqli_real_escape_string($tentangsaya)."', ipk = '$ipk', date = '$date' WHERE id = '$id_akun'"); }else { move_uploaded_file($tmp_name, "assets/img/foto/".$file_name); mysqli_query($koneksi, "UPDATE akun SET id_jurusan = '$id_jurusan', username = '$username', password = '$password', email = '$email', namadepan = '$namadepan', namabelakang = '$namabelakang', semester = '$semester', id_statusakun = '$statusakun', foto = '$file_name', slogan = '".mysqli_real_escape_string($slogan)."', tempatkerja = '$tempatkerja', alamat = '$alamat', kota = '$kota', nohp = '$nohp', tentangsaya = '".mysqli_real_escape_string($tentangsaya)."', ipk = '$ipk', date = '$date' WHERE id = '$id_akun'"); } header("location:index.php?update-akun=$id_akun&suksesupdateakun"); } ?> <div class="content"> <div class="container-fluid"> <div class="row"> <div class="col-lg-4 col-md-5"> <div class="card card-user"> <div class="image"> <img src="assets/img/background.jpg"/> </div> <div class="content"> <div class="author"> <?php if($row_edit['foto']=="") { echo "<img src='assets/img/foto/tanpafoto.png' class=\"avatar border-white\">"; }else {?> <img class="avatar border-white" src="assets/img/foto/<?php echo $row_edit["foto"] ?>"> <?php }?> <h4 class="title"><?php echo $row_edit['namadepan'] ?> <?php echo $row_edit['namabelakang'] ?><br /> <small>@<?php echo $row_edit['username'] ?></small> </h4> </div> <p class="description text-center"> "<?php echo $row_edit['slogan'] ?>" </p> </div> <hr> <div class="text-center"> <div class="row"> <div class="col-md-3 col-md-offset-1"> <h5>Ranking<br /><small>2</small></h5> </div> <div class="col-md-4"> <h5>IPK<br /><small><?php echo $row_edit['ipk'] ?></small></h5> </div> <div class="col-md-3"> <h5>Likes<br /><small>102</small></h5> </div> </div> </div> </div> <div class="card"> <div class="text-center"> <h4 class="title"><a href="">Lihat Profil</a></h4> </div> </div> </div> <div class="col-lg-8 col-md-7"> <div class="card"> <div class="header"> <h4 class="title">Edit Profil</h4> </div> <div class="content"> <form method="post" enctype="multipart/form-data" role="form"> <div class="row"> <div class="col-md-5"> <div class="form-group"> <label>Perusahaan:</label> <input type="text" name="tempatkerja" class="form-control border-input" placeholder="Tempat Kerja" value="<?php echo $row_edit['tempatkerja'] ?>"> </div> </div> <div class="col-md-3"> <?php if($sess_prof['akun_statusakun']=="1") {?> <div class="form-group"> <label>Username</label> <input type="text" name="username" class="form-control border-input" placeholder="Username" value="<?php echo $row_edit['username'] ?>"> </div> <?php } else {?> <div class="form-group"> <label>Username</label> <input type="text" disabled name="username" class="form-control border-input" placeholder="Username" value="<?php echo $row_edit['username'] ?>"> </div> <?php } ?> </div> <div class="col-md-4"> <div class="form-group"> <label for="email">Email</label> <input type="email" name="email" class="form-control border-input" placeholder="Masukkan Email yang Sah" value="<?php echo $row_edit['email'] ?>"> </div> </div> </div> <div class="row"> <div class="col-md-4"> <div class="form-group"> <label>Nama Depan</label> <input type="text" required name="namadepan" class="form-control border-input" placeholder="Nama Depan" value="<?php echo $row_edit['namadepan'] ?>"> </div> </div> <div class="col-md-4"> <div class="form-group"> <label>Nama Belakang</label> <input type="text" required name="namabelakang" class="form-control border-input" placeholder="Nama Belakang" value="<?php echo $row_edit['namabelakang'] ?>"> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="password">Password</label> <input type="password" name="password" class="form-control border-input" placeholder="Buat Password Baru" minlength="7" value="<?php echo $row_edit['password'] ?>"> </div> </div> </div> <div class="row"> <div class="col-md-8"> <div class="form-group"> <label for="alamat">Alamat</label> <input type="text" name="alamat" class="form-control border-input" placeholder="Alamat..." value="<?php echo $row_edit['alamat'] ?>"> </div> </div> <div class="col-md-4"> <label for="pilih_jurusan">Jurusan</label> <select name="pilih_jurusan" class="form-control border-input"> <option value="">Pilih Jurusan</option> <?php if(mysqli_num_rows($jurusan)) {?> <?php while($row_jurusan = mysqli_fetch_array($jurusan)) {?> <option <?php echo $row_edit['id_jurusan']==$row_jurusan['id'] ? "selected='selected' " : "" ?> value="<?php echo $row_jurusan['id'] ?>"><?php echo $row_jurusan['nama_jurusan'] ?></option> <?php } ?> <?php } ?> </select> </div> </div> <div class="row"> <div class="col-md-4"> <div class="form-group"> <label for="semester">Semester</label> <input type="number" max="8" min="1" name="semester" class="form-control border-input" placeholder="Semester Berapa ?" required value="<?php echo $row_edit['semester'] ?>"> </div> </div> <div class="col-md-4"> <div class="form-group"> <label for="kota">Kota</label> <input type="text" name="kota" class="form-control border-input" placeholder="Kota" value="<?php echo $row_edit['kota'] ?>"> </div> </div> <div class="col-md-4"> <div class="form-group"> <label>No HP</label> <input type="telp" name="nohp" class="form-control border-input" placeholder="No HP" value="<?php echo $row_edit['nohp'] ?>"> </div> </div> </div> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label>Tentang Saya</label> <textarea rows="5" name="tentangsaya" class="form-control border-input" placeholder="Ceritakan Siapa Diri Anda" value="<?php echo $row_edit['tentangsaya'] ?>"></textarea> </div> </div> <div class="col-md-6"> <div class="form-group"> <label>Slogan Baru</label> <textarea rows="5" name="slogan" class="form-control border-input" placeholder="Masukkan Slogan Baru Disini"><?php echo $row_edit['slogan'] ?></textarea> </div> </div> </div> <div class="row"> <?php if($sess_prof['akun_statusakun']=="3") {?> <div class="col-md-2"> <label for="ipk">IPK</label> <input type="text" name="ipk" class="form-control border-input" placeholder="Contoh: 3.5" value="<?php echo $row_edit['ipk'] ?>"> </div> <?php }else { ?> <div class="col-md-2"> <label for="ipk">IPK</label> <input type="text" readonly name="ipk" class="form-control border-input" placeholder="Contoh: 3.5" value="<?php echo $row_edit['ipk'] ?>"> </div> <?php } ?> <?php if($sess_prof['akun_statusakun']=="1") {?> <div class="col-md-3"> <label for="statusakun">ID Status Akun</label> <input type="number" max="3" min="0" name="statusakun" class="form-control border-input" required value="<?php echo $row_edit['id_statusakun']?>"> </div> <?php }else {?> <div class="col-md-3"> <label for="statusakun">Status Akun</label> <input type="number" disabled name="statusakun" class="form-control border-input" value="<?php echo $row_edit['id_statusakun'] ?>"> </div> <?php } ?> <div class="col-md-4"> <label for="file">Pilih Foto</label> <input type="file" name="file" class="form-control"> </div> </div> <div class="row"> <div class="col-xs-12 text-center"> <button type="submit" class="btn btn-default" name="submit-update-akun">Update Akun</button> <button type="submit" class="btn btn-danger"><a href="index.php?delete-akun=<?php echo $row_edit['id'] ?>">Hapus Profil</a></button> <input type="hidden" name="id_akun" value="<?php echo $row_edit['id'] ?>"> </div> </div> <div class="clearfix"></div> </form> </div> </div> </div> </div> </div> </div>
Tidak perlu diikuti kode HTML nya, karena bisa saja kode HTML ini berbeda dengan kode HTML yang kalian gunakan, perhatikan dan fokus pada seluruh kode PHP nya.
Disini saya contohkan sistem edit / update termasuk file gambar / image, jika kalian tidak menggunakan file gambar silahkan / choose file silahkan hapus saja kode-kode PHP yang menjelaskan tentang image.
Kode eksekusi ini tidak berbeda jauh dengan sistem insert hanya disini diubah menjadi “UPDATE akun SET” yang sebelumnya INSERT INTO, akun disini adalah nama table di database bersangkutan yang akan dieksekusi jika namanya member maka ubah akun menjadi member.
Kode diatas juga sudah termasuk menampilkan data pada akun yang bersangkutan agar dapat dengan mudah mengeditnya, misalnya ada akun yang memiliki nama depan Ade maka pada halaman update-akun.php ini dikolomnya pun menampilkan nama Ade tersebut.
(lihat gambar) Kemudian ketika di klik tombol Update Akun pada halaman detail masing-masing akun maka akan memperbarui akun tersebut, silahkan dicoba.
Pada halaman detail profil / akun ini terdapat tombol Hapus Profil artinya kalian pun dapat menghapus akun tersebut di halaman detail ini (tidak hanya di halaman daftar akun saja, dengan syarat harus menyelesaikan sistem delete dibawah ini terlebih dahulu agar tombolnya berfungsi).
Membuat Sistem Delete
Pada halaman daftar akun, sudah ditambahkan tombol Delete tapi belum ada sistemnya. Sekarang kita buat sistemnya, karena pada halaman index.php sudah ditetapkan jika paramater ?delete-akun akan menampilkan isi dari file delete-akun.php maka sekarang silahkan buat file baru dengan nama delete-akun.php.
Dalam file delete-akun.php silahkan tempel kode berikut:
<?php if(isset($_GET['delete-akun'])) { $id_akun = $_GET['delete-akun']; mysqli_query($koneksi, "DELETE FROM akun WHERE id = '$id_akun'"); header("location: index.php?semua-akun&berhasildeleteakun"); } ?>
Ini merupakan sistem delete, id akun disini diambil dari id akun yang di GET. id yang di GET ini sudah kita tetapkan tadi pada halaman daftar akun ketika menambahkan tombol. Jadi, setiap id tombol Delete yang ditekan maka akan menghapus akun yang sejajar dengan tombol tersebut (menghapus akun dengan id tersebut).
header() adalah halaman arahan setelah berhasil menghapus akun, kalian bisa tentukan ingin diarahkan kemana setelah berhasil menghapus akun.
Sampai sini, kalian seharusnya sudah berhasil membuat sistem Edit / Update & Delete Data Database di PHP menggunakan MySQLi Statement.
DISARANKAN: Video tutorial cara membuat sistem CRUD PHP.
Hanya mengintakan, tutorial ini menggunakan MySQLi Statement maka jika ada yang berbeda dengan sistem yang kalian buat sebelumnya (dari tutorial situs blog lain) harap maklum mungkin statement yang digunakannya berbeda. Tutorial PHP ini mengandung gambar, mungkin sedikit membingungkan karena tutorial-tutorial sebelumnya yang dibuat sebelum tutorial ini dipublikasikan saya membuatnya tanpa gambar.
Selamat mencoba !