PWPB | Pertemuan 29 Edit Data
Edit Data Pada PHP
Assalamualaikum, kembali lagi dengan saya Muhammad Fahru. Pada blog sebelumnya kita sudah belajar mengenai Read dan Create Data pada PHP menggunakan Mysql. Pada blog kali ini saya akan menjelaskan tentang Edit pada bahasa Pemogramman PHP dengan Mysql . Pertama nyalakan dulu Apache dan Mysql nya pada XAMPP. Langsung Saja ke Kodingan di bawah.
Langkah Pertama
Buka file views/v_index.php dan tulis kodingan di bawah ini
<!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>Muhamamd Fahru Rozi XI RPL 2</title>
</head>
<body>
<center>
<div class="judul">
<div class="smk">
<img src="Assets/img/smk.png" width="50%">
</div>
<div class="jdl"><br><br>
<h1>Data Siswa SMK Negeri 4 Bandung</h1>
</div>
<div class="ava">
<img src="Assets/img/ava.png" width="50%">
</div>
</div>
<table border="1" cellspacing="1" width="80%">
<thead>
<tr>
<th>No</th>
<th>NIS</th>
<th>Nama Lengkap</th>
<th>Jenis Kelamin</th>
<th>Kelas</th>
<th>Jurusan</th>
<th>Alamat</th>
<th>Golongan Darah</th>
<th>Nama Ibu</th>
<th>Nama Ayah</th>
<th colspan="2">Aksi</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
while ($siswa = $list_siswa->fetch_array()) {
?>
<tr align="center">
<td height="40"><?= $i++ ?></td>
<td><?= $siswa['nis'] ?></td>
<td><?= $siswa['nama_lengkap']?></td>
<td><?= $siswa['jenis_kelamin']?></td>
<td><?= $siswa['kelas']?></td>
<td><?= $siswa['jurusan']?></td>
<td><?= $siswa['alamat']?></td>
<td><?= $siswa['golongan_darah']?></td>
<td><?= $siswa['nama_ibu']?></td>
<td><?= $siswa['nama_ayah']?></td>
<!-- link untuk mengedit data -->
<td><a href="edit.php?nis=<?= $siswa['nis']?>" name="edit"><div class="edit"><div class="br"></div>Edit</div></a></td>
</tr>
<?php } ?>
</tbody>
</table>
<br><br>
<!-- Digunakan untuk membuat link yang mengarah ke file tambah.php -->
<a href="tambah.php">
<div class="add">
<h4>Tambahkan Data</h4>
<img src="Assets/img/plus.png" width="20%" class="plus">
</div>
</a>
</center>
</body>
</html>
Penjelasan Ada di kodingan
Langkah Kedua
Buat file edit.php dan tulis kodingan di bawah ini
<?php
include 'lib/library.php';
// Digunakan untuk mengambil value dari GET parameter dengan key nis
$nis = $_GET['nis'];
// Digunakan untuk memeriksa apakah ada request dalam bentuk POST yang dikirim ke halaman ini? (Halaman edit.php)
if ($_SERVER['REQUEST_METHOD']=='POST') {
// Digunakan untuk mengambil data dalam bentuk POST dari form
$nis = htmlspecialchars($_POST['nis']);
$nama_lengkap = htmlspecialchars($_POST['nama_lengkap']);
$jenis_kelamin = htmlspecialchars($_POST['jenis_kelamin']);
$kelas = htmlspecialchars($_POST['kelas']);
$jurusan = htmlspecialchars($_POST['jurusan']);
$alamat = htmlspecialchars($_POST['alamat']);
$golongan_darah = htmlspecialchars($_POST['golongan_darah']);
$nama_ibu = htmlspecialchars($_POST['nama_ibu']);
$nama_ayah = htmlspecialchars($_POST['nama_ayah']);
// Digunakan untuk membuat SQL string untuk mengubah data pada tabel siswa
$sql = "UPDATE siswa SET
nama_lengkap = '$nama_lengkap',
jenis_kelamin = '$jenis_kelamin',
kelas = '$kelas',
jurusan = '$jurusan',
alamat = '$alamat',
golongan_darah = '$golongan_darah',
nama_ibu = '$nama_ibu',
nama_ayah = '$nama_ayah'
WHERE nis = '$nis' ";
$mysqli->query($sql) or die ($mysqli->error);
header('location: index.php');
}
// Digunakan untuk memeriksa apakah parameter nis ada pada url? Jika tidak ada maka arahkan halaman kembali ke index.php
if(empty($nis)) header('location : index.php');
// Mengambil data dari tabel siswa berdasarkan nis sesuai dengan parameter get nya
$sql = "SELECT * FROM siswa WHERE nis = '$nis' ";
$query = $mysqli->query($sql);
// $query->fetch_array() tanpa looping artinya hanya mengambil hasil query baris pertama saja (1 data)
$siswa = $query->fetch_array();
// Digunakan untuk memeriksa apakah data siswa dengan nis tersebut ada pada tabel siswa? Jika tidak ada maka arahkan halaman kembali ke index.php
if(empty($siswa))header('location : index.php');
include 'views/v_tambah.php';
?>
Penjelasan Ada di kodingan
Langkah Ketiga
Buka file views/v_tambah.php dan ubah kodingan seperti di bawah ini
<!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>Muhammad Fahru Rozi XI RPL 2</title>
<link rel="stylesheet" type="text/css" href="Assets/css/style_tambah.css">
</head>
<body>
<?php
$action = 'tambah.php';
$disabled = '';
$judul = 'Input Data Siswa';
if (!empty($siswa)){
$action = 'edit.php';
$disabled = 'readonly';
$judul = 'Edit Data Siswa';
}
?>
<center>
<!-- action diisi sesuai kondisi diatas -->
<form action="<?= $action ?>" method="POST">
<fieldset>
<legend><?= $judul ?></legend>
<table align="center" width="100%">
<tr>
<td><label for="nis">NIS</label></td>
<td><input autocomplete="off" required type="text" name="nis" value="<?= @$siswa['nis'] ?>" <?= $disabled ?>></td>
</tr>
<tr>
<td><label for="nama_lengkap">Nama Lengkap</label></td>
<td><input autocomplete="off" required type="text" name="nama_lengkap" value="<?= @$siswa['nama_lengkap'] ?>"></td>
</tr>
<tr>
<td><label for="jenis_kelamin">Jenis Kelamin</label></td>
<td>
<input autocomplete="off" required type="radio" name="jenis_kelamin" value="L" <?= @$siswa['jenis_kelamin'] == 'L' ? 'checked' : '' ?>>Laki - Laki
<input autocomplete="off" required type="radio" name="jenis_kelamin" value="P" <?= @$siswa['jenis_kelamin'] == 'P' ? 'checked' : '' ?>>Perempuan
</td>
</tr>
<tr>
<td><label for="kelas">Kelas</label></td>
<td>
<select required name="kelas" class="select1">
<option value="XI-RPL1" <?= @$siswa['kelas'] == 'XI-RPL1' ? 'selected' : '' ?>>XI RPL 1</option>
<option value="XI-RPL2" <?= @$siswa['kelas'] == 'XI-RPL2' ? 'selected' : '' ?>>XI RPL 2</option>
<option value="XI-RPL3" <?= @$siswa['kelas'] == 'XI-RPL3' ? 'selected' : '' ?>>XI RPL 3</option>
</select>
</td>
</tr>
<tr>
<td><label for="jurusan">Jurusan</label></td>
<td><input autocomplete="off" required type="text" name="jurusan" value="<?= @$siswa['jurusan'] ?>"></td>
</tr>
<tr>
<td valign="top"><label for="alamat">Alamat</label></td>
<td><textarea required name="alamat"cols="40" rows="10"><?= @$siswa['alamat'] ?></textarea></td>
</tr>
<tr>
<td><label for="golongan_darah">Golongan Darah</label></td>
<td>
<select required name="golongan_darah" class="select2">
<option value="A" <?= @$siswa['golongan_darah'] == 'A' ? 'selected' : '' ?>>A</option>
<option value="AB" <?= @$siswa['golongan_darah'] == 'AB' ? 'selected' : '' ?>>AB</option>
<option value="B" <?= @$siswa['golongan_darah'] == 'B' ? 'selected' : '' ?>>B</option>
<option value="O" <?= @$siswa['golongan_darah'] == 'O' ? 'selected' : '' ?>>O</option>
</select>
</td>
</tr>
<tr>
<td><label for="nama_ibu">Nama Ibu</label></td>
<td><input autocomplete="off" required type="text" name="nama_ibu" value="<?= @$siswa['nama_ibu'] ?>"></td>
</tr>
<tr>
<td><label for="nama_ayah">Nama Ayah</label></td>
<td><input autocomplete="off" required type="text" name="nama_ayah" value="<?= @$siswa['nama_ayah'] ?>"></td>
</tr>
<tr>
<td colspan="3" valign="middle" ><br>
<input type="submit" value="Submit">
<a href="index.php"><div class="link"><div class="br"></div>Kembali</div></a>
</td>
</tr>
</table>
</fieldset>
</form>
</center>
</body>
</html>
Penjelasan :
Untuk melakukan edit data, kita menggunakan form
tambah yang
sudah kita buat dengan menambahkan kondisi untuk menentukan kapan form
menjadi mode
tambah, dan
kapan form
menjadi mode
edit. Form Mode tambah ketika tidak ada variabel $siswa yang dikirim ke views
v_tambah.php. Form Mode edit ketika ada
variable $siswa yang
dilewatkan ke
views v_tambah.php.
value=“<?= @$siswa[‘nis’]
?>” digunakan untuk memberikan
value pada input text tersebut.
Value berasal dari data
siswa.
Symbol @ digunakan untuk menyembunyikan
warning apabila variable
undefined
Berguna untuk mempersingkat baris
program sehingga kita tidak perlu menambahkan baris
program untuk memeriksa apakah
variable terdefinisikan atau tidak menggunakan
function empty
Untuk memberikan value pada input radio digunakan perintah if-ternary jadi Jika $siswa[‘jenis_kelamin’]
sama
dengan
‘L’ maka
input radio yang dipilih berstatus
‘checked’ atau
terpilih.
Untuk memberikan value pada input select digunakan perintah if-ternary jadi Jika $siswa[‘kelas’] sama dengan
‘XII-RPL1’ maka
input radio yang dipilih berstatus
‘selected’ atau
terpilih
Catatan : Untuk CSS nya karna sama saya tidak tulis lagi, CSS nya ada di blog sebelumnya
Test Program
1. Buka file index.php maka akan tampil seperti di bawah ini ( data menyesuaikan apa yang anda punya)
2. Klik Edit pada salah satu baris di kolom aksi maka akan ke halaman edit lalu edit lalu edit data seperti di bawah ini
3. Setelah di submit maka akan dikembalikan ke halaman index dan hasilnya seperti di bawah ini
data berhasil di edit
Cukup sekian materi yang dapat saya jelaskan pada blog kali ini semoga dapat bermanfaat untuk kawan kawan yang membaca blog ini dan sampai jumpa di blog selanjutnya
Wassalamualaikum wr wb
0 Comments