Article Bag. #2 - UD (Update & Delete)
PHP with MySQL
Setelah membuat beberapa file untuk Create
& Read
data dan ditampilkan kedalam Web Browser selanjutnya adalah kita akan membuat beberapa fungsi lagi yaitu Update
& Delete.
Sebelumnya pastikan data sudah tampil seperti berikut:
tentunya harus tersyncron dengan database di server kita:
Article #6 - Membuat fungsi Delete pada PHP & Aksi untuk Menghapus data pada Database MySQL
Tambahkan 1 file untuk file aksi hapus.php
seperti dibawah ini:
kemudian buat aksi dengan fungsi php seperti berikut:
<?php
include("config.php");
if( isset($_GET['id']) ){
// ambil id dari query string
$id = $_GET['id'];
// buat query hapus
$sql = "DELETE FROM caloniswa WHERE id=$id";
$query = mysqli_query($db, $sql);
// apakah query hapus berhasil?
if( $query ){
header('Location: list-siswa.php');
} else {
die("gagal menghapus...");
}
} else {
die("akses dilarang...");
}
?>
Query string-nya adalah?id=1
. Query string akan tersimpan dalam variabel$_GET
. setelah itu refresh web browser dan kemudian kita coba aksi dari delete berikut:
kalau kita perhatikan ini seperti menghapus pada command yang ada di MySQL database namun di interpretasikan dengan form:
sama halnya dengan menggunakan aksi di web browser diatas, dengan memasukkan query seperti berikut:
// buat query hapus
$sql = "DELETE FROM calonSiswa WHERE id=$id";
$query = mysqli_query($db, $sql);
Menghapus data siswa dimana id
yang dipilih lah yang akan dihapus
dan setelah aksi hapus berikut hasilnya:
dimana id yang di dapatkan dari aksi tersebut adalah
http://192.168.2.8/project-bag-akses-server/File%20Project/PMBsiswaSMK/hapus.php?id=15
Untuk notifikasi Alert nyusul, belum diselesaikan, untuk saat ini gunakan aksi hapus.php
ini terlebih dahulu. Konsep update data hampir sama seperti menghapus. Pertama kita ambilid
data yang akan di-edit. Setelah itu kita melakukan query untuk mengambil data dari database dan menampilkannya ke dalam form. Setelah di-edit, selanjutnya melakukan query update untuk menyimpan perubahan. Untuk lebih jelasnya, silahkan buka fileform_update.php
dan isi dengan kode berikut:
Article #7 - Membuat fungsi Update pada PHP & Aksi untuk Menghapus data pada Database MySQL
Sebelumnya buat terlebih dahulu satu file lagi yaitu form_update.php
berikut:
sebelumnya perhatikan terlebih dahulu pada file
view_data.php
seperti berikut:
....
echo "<td>";
echo "<a href='form_update.php?id=".$siswa['id']."'>Edit</a> | ";
echo "<a href='hapus.php?id=".$siswa['id']."'>Hapus</a>";
echo "</td>";
....
Jika kita sudah mengedit file atau menambahkan aksi untuk hapus.php
selanjutnya kita akan memberikan aksi ketika aksi Edit
di klik masuk ke dalam form edit dan melakukan tindakan update atau memperbaharui data pada dataSiswa:
tambahkan sourcecode berikut kedalam file
form_update.php
sebagai berikut:
<?php
include("config.php");
// kalau tidak ada id di query string
if( !isset($_GET['id']) ){
header('Location: view_data.php');
}
//ambil id dari query string
$id = $_GET['id'];
// buat query untuk ambil data dari database
$sql = "SELECT * FROM calonSiswa WHERE id=$id";
$query = mysqli_query($db, $sql);
$siswa = mysqli_fetch_assoc($query);
// jika data yang di-edit tidak ditemukan
if( mysqli_num_rows($query) < 1 ){
die("Data tidak ditemukan...");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Formulir Edit Siswa | SMK Coding</title>
</head>
<body>
<header>
<h3>Formulir Edit Siswa</h3>
</header>
<form action="aksi_update.php" method="POST">
<fieldset>
<input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" />
<p>
<label for="nama">Nama: </label>
<input type="text" name="nama" placeholder="nama lengkap" value="<?php echo $siswa['nama'] ?>" />
</p>
<p>
<label for="alamat">Alamat: </label>
<textarea name="alamat"><?php echo $siswa['alamat'] ?></textarea>
</p>
<p>
<label for="jenis_kelamin">Jenis Kelamin: </label>
<?php $jk = $siswa['jenis_kelamin']; ?>
<label><input type="radio" name="jenis_kelamin" value="Laki-laki" <?php echo ($jk == 'Laki-laki') ? "checked": "" ?>>Laki-laki</label>
<label><input type="radio" name="jenis_kelamin" value="Perempuan" <?php echo ($jk == 'Perempuan') ? "checked": "" ?>>Perempuan</label>
</p>
<p>
<label for="agama">Agama: </label>
<?php $agama = $siswa['agama']; ?>
<select name="agama">
<option <?php echo ($agama == 'Islam') ? "selected": "" ?>>Islam</option>
<option <?php echo ($agama == 'Kristen') ? "selected": "" ?>>Kristen</option>
<option <?php echo ($agama == 'Hindu') ? "selected": "" ?>>Hindu</option>
<option <?php echo ($agama == 'Budha') ? "selected": "" ?>>Budha</option>
<option <?php echo ($agama == 'Atheis') ? "selected": "" ?>>Atheis</option>
</select>
</p>
<p>
<label for="sekolah_asal">Sekolah Asal: </label>
<input type="text" name="sekolah_asal" placeholder="nama sekolah" value="<?php echo $siswa['sekolah_asal'] ?>" />
</p>
<p>
<input type="submit" value="Simpan" name="simpan" />
</p>
</fieldset>
</form>
</body>
</html>
Ada beberapa hal yang perlu diperhatikan dalam kode tersebut. Pertama kita mengubah data dari hasil query menjadi array dengan menggunakan fungsimysqli_fetch_assoc()
. Kenapa menggunakan fungsi tersebut? Karena data yang akan kita ambil adalah satu baris dan agar indeks array-nya menggunakan nama kolom. Contoh hasilnya seperti ini:
Array
(
[id] => 1
[nama] => Lia
[alamat] => Jl. Mangga No. 3, Mataram
[jenis_kelamin] => perempuan
[agama] => Islam
[sekolah_asal] => SMPN 32 Ampenan
)
Kemudian data tersebut kita tampilkan untuk menjadi nilai default pada form. Jangan lupa untuk membuat inputid
dengan tipe_hidden_untuk menyimpanid
data yang akan di-update.
<input type="hidden" name="id" value="<?php echo $siswa['id'] ?>" />
Untuk input radio dan select, kita menggunakan operator ternary agar bisa membuat atributchecked
danselected
.
<p>
<label for="jenis_kelamin">Jenis Kelamin: </label>
<?php $jk = $siswa['jenis_kelamin']; ?>
<label><input type="radio" name="jenis_kelamin" value="Laki-laki" <?php echo ($jk == 'Laki-laki') ? "checked": "" ?>>Laki-laki</label>
<label><input type="radio" name="jenis_kelamin" value="Perempuan" <?php echo ($jk == 'Perempuan') ? "checked": "" ?>>Perempuan</label>
</p>
<p>
<label for="agama">Agama: </label>
<?php $agama = $siswa['agama']; ?>
<select name="agama">
<option <?php echo ($agama == 'Islam') ? "selected": "" ?>>Islam</option>
<option <?php echo ($agama == 'Kristen') ? "selected": "" ?>>Kristen</option>
<option <?php echo ($agama == 'Hindu') ? "selected": "" ?>>Hindu</option>
<option <?php echo ($agama == 'Budha') ? "selected": "" ?>>Budha</option> <option <?php echo ($agama == 'Atheis') ? "selected": "" ?>>Atheis</option>
</select>
</p>
Kemudian setelah itu buat file
aksi_update.php
kemudian isikan kode seperti berikut:
<?php
include("config.php");
// cek apakah tombol simpan sudah diklik atau blum?
if(isset($_POST['simpan'])){
// ambil data dari formulir
$id = $_POST['id'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jk = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah = $_POST['sekolah_asal'];
// buat query update
$sql = "UPDATE calonSiswa SET nama='$nama', alamat='$alamat', jenis_kelamin='$jk', agama='$agama', sekolah_asal='$sekolah' WHERE id=$id";
$query = mysqli_query($db, $sql);
// apakah query update berhasil?
if( $query ) {
// kalau berhasil alihkan ke halaman list-siswa.php
header('Location: view_data.php');
} else {
// kalau gagal tampilkan pesan
die("Gagal menyimpan perubahan...");
}
} else {
die("Akses dilarang...");
}
?>
dan berikut adalah hasil dari proses eksekusi dari aksi_update.php
sebeernya konsepnya sama aja pada saat updat yang penting query dari update tersebut faham, seperti di MySQL
Database commandnya sama seperti berikut:
result:
CRUD PHP with MySQL. Done.
Sumber: https://www.petanikode.com/tutorial-php-mysql/
The Biggest Idea:
Di idea ini kita akan coba mengimplementasikan kedalam bentuk platform mobile maka dari itu kita coba matangkan dulu karena step #1 sudah kita selesaikan yaitu mengelola database dengan CRUD Sederhana di Web Browser dengan PHP & MySQL DatabaseProject ini adalah integrasi dari sebuah data yang besar kemudian diimplementasikan kedalam data yang lebih kecil sehingga data dapat di konsumsi oleh user lain.