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