Pada belajar PHP dasar bagian 15, kita telah mempelajari bagaimana cara menambahkan data baru ke dalam database menggunakan fungsi Create. Nah, pada bagian 16 ini, kita akan melanjutkan proses CRUD dengan mempelajari cara update data, yaitu mengubah data yang sudah ada di database.
Fungsi update ini sangat penting karena dalam pengelolaan data, tidak semua informasi selalu tetap. Kadang, pengguna perlu memperbarui data seperti nama, email, atau alamat tanpa harus menghapus dan menambahkan data baru.
Di tutorial ini, kita akan membahas langkah demi langkah cara membuat fitur edit dan update data menggunakan PHP, mulai dari tampilan form edit hingga proses penyimpanannya ke database.
Membuat Tombol Edit Untuk Proses Update Data
Pada file index.php, kita akan menambahkan tombol edit di sebelah kanan setiap data yang telah diinput sebelumnya. Tombol ini berfungsi agar saat diklik, hanya data yang dipilih saja yang akan ditampilkan di halaman edit.
Pada tahap ini, kita belum menggunakan primary key (seperti ID) sebagai pembeda antar data. Oleh karena itu, untuk sementara kita akan menggunakan nama sebagai penanda unik setiap baris data. Artinya, selama proses pengujian, pastikan tidak ada nama yang sama, agar sistem dapat menampilkan data yang benar saat proses edit.
Jika Anda ingin membuat struktur database yang lebih baik, sebaiknya tambahkan primary key pada tabel. Penjelasan lebih detail tentang primary key bisa Anda baca di artikel berikut: Primary Key
Untuk menampilkan tombol edit, kita perlu tempat baru di tabel dengan menambahkan th seperti berikut setelah email:
<th>Action</th>Dan script berikut setelah menampilkan data email:
<td><a href="edit.php?edit=<?php echo $a['nama']?>" class="btn btn-warning">edit</a></td>Sehingga index.php kita saat ini isinya seperti berikut:
<head>
<title>Data Diri</title>
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<?php
include 'database.php';
$database = new database();
?>
<div class="p-md-4 container">
<table class="table">
<thead class="thead-dark">
<tr>
<th>Nama</th>
<th>Usia</th>
<th>Domisili</th>
<th>Email</th>
<th>Action</th>
</tr>
</thead>
<?php
$numb = 1;
foreach($database->show() as $a){ ?>
<tr>
<td><?php echo $a['nama']; ?></td>
<td><?php echo $a['usia']; ?></td>
<td><?php echo $a['domisili']; ?></td>
<td><?php echo $a['email']; ?></td>
<td><a href="edit.php?edit=<?php echo $a['nama']?>" class="btn btn-warning">edit</a></td>
</tr>
<?php } ?>
</table>
</div>
<div class="p-md-4 container">
<a href="create.php" class="btn btn-primary">Create Data</a>
</div>
</body>Tampilan terbaru menjadi index website seperti berikut:

Terlihat tombol edit di setiap data sudah muncul.
Membuat Tampilan Edit Data
Setelah tombol Edit diklik, pengguna akan diarahkan ke halaman form edit data. Untuk itu, kita perlu membuat file baru bernama edit.php. Tampilan halaman ini hampir sama dengan create.php, namun perbedaannya terletak pada form yang sudah terisi otomatis dengan data yang ingin diedit.
Berikut contoh script untuk file edit.php yang akan kita gunakan:
<head>
<title>Data Diri</title>
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<?php
include 'database.php';
$database = new database();
$edit = $_GET['edit'];
?>
<div class="p-md-4 container">
<form method="post" action="aksi.php?aksi=ubah&value=<?php echo $edit?>">
<table class="table">
<thead class="thead-dark">
<tr>
<th colspan=4">Update Data diri</th>
</tr>
</thead>
<tbody>
<?php foreach($database->showEdit($edit) as $a){ ?>
<tr>
<td>Nama</td>
<td colspan="3"><input type="text" class="form-control" name="nama" value="<?php echo $a['nama']; ?>"></td>
</tr>
<tr>
<td>Usia</td>
<td colspan="3"><input type="text" class="form-control" name="usia" value="<?php echo $a['usia']; ?>"></td>
</tr>
<tr>
<td>Domisili</td>
<td colspan="3"><input type="text" class="form-control" name="domisili" value="<?php echo $a['domisili']; ?>"></td>
</tr>
<tr>
<td>Email</td>
<td colspan="3"><input type="text" class="form-control" name="email" value="<?php echo $a['email']; ?>"></td>
</tr>
<tr>
<td><input type="submit" class="btn btn-primary" value="update"></td>
<td colspan="3"></td>
</tr>
<?php } ?>
</tbody>
</table>
</form>
</div>
</body>Perhatikan pada bagian action di sintak form, ketika submit form akan dipindahkan ke file aksi.php?aksi=ubah, sehingga kita memerlukan aksi baru di aksi.php untuk melakukan update/edit data di database.
Selain itu, pada bagian menampilkan data terdapat script foreach($database->showEdit($edit) as $a), sehingga pada file database.php kita perlu menambahkan function baru untuk melakukan pengubahan data ini.
Kita edit file aksi.php dulu dengan menambahkan script berikut:
if($aksi == "ubah"){
$db->update($_GET['ubah'],$_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
header("location:index.php");
}Sehingga saat ini keseluruhan script aksi.php menjadi seperti berikut:
<?php
include 'database.php';
$db = new database();
$aksi = $_GET['aksi'];
if($aksi == "tambah"){
$db->input($_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
header("location:index.php");
}
if($aksi == "ubah"){
$db->update($_GET['ubah'],$_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
header("location:index.php");
}
?>Saat ini, kita perlu mengedit database.php, di mana kita akan menambahkan 2 function untuk menampilkan data apa yang akan diedit di file edit.php dan function pengubahan/update data. Berikut script kedua function tersebut yang perlu kita tambahkan:
function showEdit($nama){
$tampil = mysqli_query($this->conn, "select * from personal where nama='$nama'");
while($data = mysqli_fetch_assoc($tampil)){
$hasil[] = $data;
}
return $hasil;
}
function update($oldnama,$nama,$usia,$domisili,$email){
mysqli_query($this->conn, "update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'");
}Script lengkap file database.php saat ini menjadi seperti berikut :
<?php
class database{
protected $host = "localhost";
protected $username = "root";
protected $password = "";
protected $database = "datadiri";
function __construct(){
$conn = mysqli_connect($this->host, $this->username, $this->password, $this->database);
if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
return $this->conn = $conn;
}
function show(){
$tampil = mysqli_query($this->conn, "select * from personal");
while($data = mysqli_fetch_assoc($tampil)){
$hasil[] = $data;
}
return $hasil;
}
function showEdit($nama){
$tampil = mysqli_query($this->conn, "select * from personal where nama='$nama'");
while($data = mysqli_fetch_assoc($tampil)){
$hasil[] = $data;
}
return $hasil;
}
function input($nama,$usia,$domisili,$email){
mysqli_query($this->conn, "insert into personal values('$nama','$usia','$domisili','$email')");
}
function update($oldnama,$nama,$usia,$domisili,$email){
mysqli_query($this->conn, "update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'");
}
}
?>Pengujian
Jika implementasi script di atas sudah selesai dilakukan, ketika tombol edit kita tekan maka akan berpindah ke halaman form edit seperti berikut:


Dalam pengujian ini, kita coba mengubah domisili menjadi Jakarta dan kita klik tombol update

Setelah tombol update diklik, akan berpindah ke aksi.php dan akan menjalankan pemanggilan function ubah dari file database.php. Setelah selesai akan di direct ke index.php dengan menampilkan databasenya kembali yang telah terupdate.

Data domisili yang kita ubah ke Jakarta tadi telah muncul.
Penutup
Sampai di tahap ini, kita telah berhasil menambahkan fitur Edit Data menggunakan pendekatan OOP (Object Oriented Programming) di PHP.
Dengan fitur ini, Anda dapat memperbarui informasi pada database dengan mudah tanpa perlu menambah data baru. Fitur edit ini menjadi bagian penting dalam proses CRUD (Create, Read, Update, Delete) karena memberikan fleksibilitas dalam mengelola data di website.
Demikian tutorial belajar PHP Dasar untuk pemula bagian 16 tentang cara membuat function update. Pada belajar PHP bagian 17, kita akan melanjutkan ke tahap berikutnya, yaitu membuat fungsi Delete Data, untuk melengkapi seluruh proses CRUD di PHP. Semoga bermanfaat.


