Belajar PHP #14 : Fitur Edit pada PHP

Fitur Edit pada PHP

Setelah selesai dengan fitur Input dan Delete, sekarang kita akan terfokus untuk untuk Fitur terakhir yaitu Fitur Edit pada PHP. Fitur ini merupakan Fitur terakhir dari CRUD (Create, Read, Update, dan Delete). Ini adalah artikel terakhir dari Artikel PHP dasar kali ini. Seperti fitur sebelumnya, kita sebenarnya bisa menggunakan Fitur ini langsung dari Database Phpmyadmin kita, akan tetapi kita akan terfokus melakukan ini dari Website kita.

Penjelasan Fitur Edit pada PHP

Seperti fungsi-fungsi sebelumnya, Fungsi edit pada PHP ini menggunakan juga menggunakan SQL sebagai Dasar dari Fungsinya. Sebenarnya kita bisa menggunakan Fungsi UPDATE pada SQL kita. Tapi sekarang aku lebih memilih menggunakan fungsi INSERT dengan tambahan ON DUPLICATE KEY UPDATE, mungkin aku berikan dulu contoh SQL yang akan digunakan.

INSERT INTO siswa(id , nama_siswa, email, jenis_kelamin)  VALUES ('" . $id . "','" . $nama_siswa . "','" . $email . "', '" . $jenis_kelamin . "') ON DUPLICATE KEY UPDATE id=VALUES(id), nama_siswa=VALUES(nama_siswa), email=VALUES(email), jenis_kelamin=VALUES(jenis_kelamin)

Bisa dilihat di SQL diatas, Kita menggunakan INSERT di fungsi kita. Nah logikanya, kita akan memberikan Input ke Database kita dengna ketentuan ON DUPLICATE KEY UPDATE, yang artinya apabila isinya sama, maka akan dilakukan UPDATE, bukan menginputkan hal baru ke Database kita.

Jadi misal kedepannya kita meng-edit Siswa dengan id = 1. Maka Siswa yang memiliki id = 1 ini akan kita edit Datanya, dan apabila Datanya sama (Duplicate). Maka datanya tidak akan berubah. Okay mari kita praktekkan.

Coding pada index.php

Kita harus menambahkan suatu hal ke file index.php kita yaitu sebuah Link untuk mengarahkan kita ke Halaman Khusus untuk Edit Siswa. Hal ini sama persis seperti saat kita menambahkan Link / Tombol Delete kita pada Artikel sebelumnya.

Sekarang kita bisa tambahkan syntax seperti dibawah ini

<a href="editSiswa.php?id=<?= $item['id'] ?>">Edit</a>
|

Dan seharusnya di Codingan kita sekarang tertulis seperti ini

File index.php

<td>
     <a href="editSiswa.php?id=<?= $item['id'] ?>">Edit</a>
      |
     <a href="deleteSiswa.php?id=<?= $item['id'] ?>">Delete</a>
</td>

Nah, Link diatas akan mengarahkan kita ke file editsiswa.php, dan akan mengirimkan id kita untuk nantinya kita ambil dan kita edit Data yang berhubungan dengan id tersebut. Setelah Coding ditambahkan maka harusnya akan tampil seperti ini

Coding pada SiswaController.php

Okay, sekarang kita akan menambahkan dua fungsi terakhir di Controller kita. Fungsi Edit pada PHP ini memerlukan dua Fungsi yang berbeda. Fungsi yang pertama adalah untuk memperlihatkan Data yang akan kita Edit. Jadi misal kita klik Edit pada Data Pertama. Maka akan muncul nama, email, dan jenis kelamin nya di Form kita.

Kita akan menggunakan suatu Fungsi, dan Fungsi ini untuk mengambil Data berdasarkan id.

File SiswaController.php

        public function readSiswa($id)
        {
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $query = "SELECT * FROM siswa WHERE id = $id";
            $stmt = $this->pdo->prepare($query);
            $stmt->execute();
            $result = $stmt->fetchAll();
            return $result;
        }

Bisa dilihat di syntax diatas kita menggunakan SQL yaitu SELECT * FROM siswa WHERE id = $id SQL ini digunakan sebelum Fitur Edit pada PHP kita gunakan, jadi Menampilkan data yang akan kita Edit.

Setelah itu, kita akan membuat Sebuah Fungsi untuk meng-inputkan data yang kita edit. Fungsi ini akan menyempurnakan Fungsi edit pada PHP kita. Fungsi ini seperti SQL yang dijelaskan pada Penjelasan Fitur Edit pada PHP diatas.

File SiswaController.php

public function editSiswa($id, $nama_siswa, $email, $jenis_kelamin)
        {
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $query = "INSERT INTO siswa(id, nama_siswa, email, jenis_kelamin)  VALUES ('" . $id . "','" . $nama_siswa . "','" . $email . "', '" . $jenis_kelamin . "')
            ON DUPLICATE KEY UPDATE id=VALUES(id), nama_siswa=VALUES(nama_siswa), email=VALUES(email), jenis_kelamin=VALUES(jenis_kelamin)";
            $stmt = $this->pdo->prepare($query);
            $stmt->execute();
            return $stmt->rowCount();
        }

Nah bisa dilihat diatas seperti yang dijelaskan diatas. Kita sudah membuat sebuah Fitur Input Edit dengan SQL yang ada. Di SQL itu kita menggunakan syntax INSERT INTO. Setelah itu Data yang kita inputkan akan jadi ter-update dengan sendirinya.

Berikutnya kita tinggal membuat sebuah File untuk Form Edit kita.

Coding pada editSiswa.php

Codingan disini akan mirip dengan codingan pada file addSiswa.php. Yaitu di Form ini akan langsung terlihat Data Default yang sebelumnya sudah terisi. Jadi kalau tidak kita edit pun nanti Datanya akan terinput dengan sendirinya itulah dasar dari FItur Edit pada PHP kita.

File editSiswa.php akan menjalankan 2 Fungsi yang berbeda, pertama yaitu untuk menampilkan Data yang akan kita Edit. Kedua adalah Fungsi untuk menginput Data. Seperti ini syntaxnya

File editSiswa.php

<?php
include_once 'Controller/SiswaController.php';
$id = $_GET['id'];
$siswa = new Siswa;
if (isset($_POST['submit'])) {
    $editSiswa = $siswa->editSiswa($_GET['id'], $_POST['nama_siswa'], $_POST['email'], $_POST['jenis_kelamin']);
    if ($editSiswa) {
        echo "<script>alert('Berhasil Mengedit Siswa');window.location = 'index.php';</script>";
    }
}
?>

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Edit Siswa</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>

<body>
    <div class="container mt-5">
        <h3>Edit Siswa</h3>

        <?php
        $data = $siswa->readSiswa($id);
        foreach ($data as $data) {
        ?>
            <form action="" method="post" class="mt-5">
                <div class="mb-3">
                    <label for="nama_siswa" class="form-label">Nama Siswa</label>
                    <input type="text" class="form-control" id="nama_siswa" name="nama_siswa" value="<?= $data['nama_siswa'] ?>">
                    <div id="nama_siswa" class="form-text">Inputkan Nama Siswa.</div>
                </div>

                <div class="mb-3">
                    <label for="email" class="form-label">Email</label>
                    <input type="email" class="form-control" id="email" name="email" value="<?= $data['email'] ?>">
                    <div id="email" class="form-text">Inputkan email.</div>
                </div>

                <div class="mb-3">
                    <label for="jenis_kelamin" class="form-label">Jenis Kelamin</label>
                    <input type="text" class="form-control" id="jenis_kelamin" name="jenis_kelamin" value="<?= $data['jenis_kelamin'] ?>">
                    <div id="jenis_kelamin" class="form-text">Inputkan Jenis Kelamin.</div>
                </div>
                <input type="submit" value="Edit Siswa" name="submit" class="btn btn-primary">
            </form>
        <?php
        }
        ?>
    </div>
</body>

</html>

Kurang lebih tampilnya seperti ini

Belajar PHP #14 : Fitur Edit pada PHP Dunia Coding

Kesimpulan

Nah, kita sudah menyelesaikan Fitur CRUD yang terakhir yaitu Fitur Edit pada PHP. Disini kita juga sudah menerapkan konsep OOP untuk Fitur Edit pada PHP kita. Semoga Bermanfaat buat kita semua!

Fitur Edit pada PHP ini wajib kita gunakan. Ini adalah Fitur yang sangat penting untuk kita pelajari. Oh iya, kalau temen-temen penasaran dengan Apa yang harus kita pelajari setelah ini. Teman-teman bisa mulai belajar Framework

  1. Mengapa Belajar Framework Penting Bagi Developer ?
Share

You may also like...

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *