
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

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