Setelah kemarin kita belajar insert data ( menyimpan data ke dalam basis data ) dengan menggunakan sebuah function(), it's time we talk about function to update 👋😁
Untuk mengikuti artikel ini, pastikan kalian telah menyelesaian materi sebelumnya tentang :
- Koneksi dengan mysql
- Menampilkan data mysql dengan php
Pertama, kemarin kita berhasil menampilkan datanya kurang lebih seperti :
Kemudian kita ubah menjadi tampilan data yang realistis dengan menggunakan tag HTML <table> menjadi :
Bagian selanjutnya adalah kita menambahkan sebuah tautan untuk Edit diikuti dengan tampilan untuk update data. Dalam kode php, kita tambahkan baris :
if(mysqli_num_rows($myquery) > 0)
{
?>
<table>
<tr>
<td>Nama</td>
<td>Alamat</td>
<td>Tanggal</td>
<td>Umur</td>
<td>Ket</td> <!-- menambahkan kolom sbg judul untuk Keterangan -->
</tr>
<?php
while($data = mysqli_fetch_assoc($myquery)){
?>
<tr>
<td><?php echo $data["nama"]; ?></td>
<td><?php echo $data["alamat"]; ?></td>
<td><?php echo $data["tanggal_lahir"]; ?></td>
<td><?php echo $data["umur"]; ?></td>
<td><a href="tampilEdit.php">Edit</a></td> <!-- Menambahkan tautan Edit -->
</tr>
<?php
}
?>
</table>
<?php
}
else
{
echo "Data dalam tabel <b>tb_latihan</b> kosong!";
}
Tambahkan perintah ?umur='<?php echo $data["umur"]; >?' pada bagian tautan Edit untuk menyertakan data umur sebagai bahan kode menghapus.
Sehingga baris kode Edit menjadi :
<td><a href="tampilEdit.php?umur='<?php echo $data["umur"]; ?>'">Edit</a></td>
Perintah ?umur biasanya menggunakan id atau field primary dari tabel data yang ditampilkan sebagai tanda bahwa data yang kita edit / hapus hanya satu ( sesuai id yang dimiliki oleh data tersebut )
Arti dari ?umur= adalah kita menyertakan umur sebagai parameter yang dikirim ke halaman tampilEdit.php dengan method GET. Sekarang kita buat file baru dengan nama tampilEdit.php. Isi dari file ini hampir sama dengan input, hanya di bagian submit / button tulisannya Perbarui / Update.
<?php
include("koneksiSQL.php");
$umur = $_GET['umur']; //tangkap variabel yang tadi dikirim dengan ?umur=
$sql = "SELECT * FROM tb_latihan WHERE umur = '$umur'";
$myquery = mysqli_query($server, $sql);
if(mysqli_num_rows($myquery) > 0)
{
?>
<?php
while($data = mysqli_fetch_assoc($myquery)){
?>
<form action="prosesUpdate.php" method="get"></form> <!-- Kirim data ke prosesUpdate.php dengan method GET-->
<table>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" id="nama" value="<?php echo $data["nama"]; ?>"></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" id="alamat" value="<?php echo $data["alamat"]; ?>"></td>
</tr>
<tr>
<td>Tanggal Lahir</td>
<td><input type="text" name="tgl" id="tgl" value="<?php echo $data["tanggal_lahir"]; ?>"></td>
</tr>
<tr>
<td><input type="submit" value="Perbarui"></td>
</tr>
</table>
</form>
<?php
}
?>
<?php
}
else
{
echo "Data dalam tabel <b>tb_latihan</b> kosong!";
}
// menutup koneksi
mysqli_close($server);
?>
Pada tampilUpdate.php kita menampilkan data kembali dengan perintah SQL yang telah memiliki sortiran WHERE. Kita tampilkan hasilnya dengan tabel yang dibungkus dengan tag <form>, form inilah yang nantinya akan membawa data ke prosesUpdate.php dengan method GET.
Hasilnya, setelah kita klik tulisan Edit yang ada di tampil tadi :
🛈 Untuk memahami baris kode dibawah, ada baiknya telah memahami perintah SQL untuk pembaruan data UPDATE `tb_latihan` SET `nama`='[value-1]',`alamat`='[value-2]',`tanggal_lahir`='[value-3]',`umur`='[value-4]' WHERE 1
Dari sini, kita sudah berhasil menampilkan data untuk di perbarui / edit. Buat file baru lagi dengan nama prosesEdit.php, isi dengan baris kode :
<?php
include("koneksiSQL.php");
$umur = $_GET['umur']; //tangkap variabel yang tadi dikirim dengan <form>
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$tgl = $_GET['tgl'];
$sql = "UPDATE `tb_latihan` SET
`nama`='$nama',
`alamat`='$alamat',
`tanggal_lahir`='$tgl'
WHERE umur = '$umur'";
$myquery = mysqli_query($server, $sql);
if($myquery) {
echo "Pembaruan Data Berhasil!";
} else {
echo "Gagal :(";
}
?>
Sekarang kita coba hasilnya 👀
Nah, jika sudah jadi sekarang kita jadikan dalam bentuk function() menjadi :
<?php
$umur = $_GET['umur']; //tangkap variabel yang tadi dikirim dengan <form>
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$tgl = $_GET['tgl'];
function updateData($umur, $nama, $alamat, $tgl) {
include("koneksiSQL.php");
$sql = "UPDATE `tb_latihan` SET
`nama`='$nama',
`alamat`='$alamat',
`tanggal_lahir`='$tgl'
WHERE umur = '$umur'";
$myquery = mysqli_query($server, $sql);
if($myquery) {
echo "Pembaruan Data Berhasil!";
header('location:tampil.php'); // redirect url langsung ke tampil.php
} else {
echo "Gagal :(";
}
return $myquery;
}
updateData($umur, $nama, $alamat, $tgl); // panggil fungsi updateData() dan isi parameter dengan variabel hasil GET
?>
Yap, coba kembali hasilnya bagaimana 👌👌👌👌
Berhasil gaes 👀
Artikel selanjutnya => Unggah Gambar PHP MySQL