Home / Pemrograman / MYSQL / Aplikasi CRUD Sederhana dengan PHP dan MySQL (Update#3)

Aplikasi CRUD Sederhana dengan PHP dan MySQL (Update#3)

Artikel kali ini akan membahas kelanjutan dari artikel sebelumnya tentang Create dan Read, jadi artikel ini menjelaskan tentang “U” Edit atau Update data yang sudah kita tambah ke dalam database mysql dengan menggunakan form php. Okelah kita langsung saja menuju TKP. Pada penampilan data yang telah kita buat pada artikel Read ada penambahan kolom untuk edit, berikut ini cuplikan dari tampilan read.php
read_baru

Tahap #3 Update

Berikut ini source code perubahan dari read.php

<?php
//Koneksi ke database
$server   = "localhost";
$username = "root";
$password = "";
$database = "mahasiswaku";

$mysqli = new mysqli ($server, $username, $password, $database);
if (mysqli_connect_errno()) {
echo 'Koneksi gagal dilakukan dengan alasan : '.mysqli_connect_error();
exit();
mysqli_close($mysqli);
}
//Akhir Koneksi------------------------------------------------------
?>
<html>
<head>
<title>Read</title>
</head>
<body>
<p>DAFTAR MAHASISWA</p>
<a href="create.php">Tambah Mahasiswa</a>
<table width="370" border="1">
<thead>
<tr>
<th width="24">No.</th>
<th width="133">Nama</th>
<th width="85">NIM</th>
<th width="56">Kelamin</th>
<th width="38">Edit</th>
</tr>
</thead>
<tbody>
<?php $nomor = 0;
$data = mysqli_query($mysqli,"SELECT * FROM data_mahasiswa");
while ($show = mysqli_fetch_array($data)) {
$nomor++;
?>
<tr>
<td><?php echo $nomor;?></td>
<td><?php echo $show['nama'];?></td>
<td><?php echo $show['nim'];?></td>
<td><?php echo $show['jk'];?></td>
<td><a href="update.php?id=<?php echo $show['id'];?>">edit</a></td>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>

Nah, langkah selanjutnya yaitu membuat file update.php yang berisikan hampir sama source dengan file create.php yang ada pada artikel Create, tapi ada penambahan Variabel $_GET untuk dapat mengambil nilai yang ada di link browser. Berikut ini penampakan source code dari update.php

<html>
    <head>
        <title>Update</title>
    </head>
    <body>
        <form action="action_update.php" method="post">
            <p>UPDATE DATA MAHASISWA</p>
            <p>
            Nama : <input type="text" name="nama"> <br>
            NIM &nbsp: <input type="text" name="nim"> <br>
            Kelamin : <select name="jk">
                        <option value="">-- Pilih --</option>
                        <option value="L">Laki-laki</option>
                        <option value="P">Perempuan</option>
                      </select>
            </p>
            <input type="submit" name="update" value="EDIT">
        </form>
    </body>
</html>

source code ini belum bisa berfungsi, karen masih ada penambahan <?php –coding– ?>. jadi kita harus menambahkan $_GET untuk pemanggilan id dari setiap nama-nama mahasiswa yang sudah dimasukan ke database. setiap kolom untuk pengisiannya juga harus ditambahkan coding lagi agar bisa menampilkan data pada pemanggilan $_GET yang di panggil pada file read.php tadi. Nah jika pengertian saya terlalu rumit untuk dimengerti akan saya jelaskan saja pada setiap barisnya. Berikut ini source code kompleks yang sudah bisa digunakan.

<?php
//Koneksi ke database
$server   = "localhost";
$username = "root";
$password = "";
$database = "mahasiswaku";
 
$mysqli = new mysqli ($server, $username, $password, $database);
if (mysqli_connect_errno()) {
    echo 'Koneksi gagal dilakukan dengan alasan : '.mysqli_connect_error();
    exit();
    mysqli_close($mysqli);
}
//Akhir Koneksi---------------------------------------------------------

$data = mysqli_query($mysqli, "SELECT * FROM data_mahasiswa WHERE id='$_GET[id]'");
$datashow = mysqli_fetch_array($data);
?>
<html>
    <head>
        <title>Update</title>
    </head>
    <body>
        <form action="action_update.php" method="post">
            <p>UPDATE DATA MAHASISWA</p>
            <p>
<input type="hidden" name="id" value="<?php echo $_GET['id'];?>">
Nama : <input type="text" name="nama" value="<?php echo $datashow['nama']; ?>"> <br>
            NIM &nbsp: <input type="text" name="nim" value="<?php echo $datashow['nim']; ?>"> <br>
            Kelamin : <select name="jk">
                        <option value="value="<?php echo $datashow['jk']; ?>"">
                        <?php if ($datashow['jk']=='P') { echo "Perempuan";} elseif ($datashow['jk']=='L') { echo "Laki-laki";} else { echo "Kosong";}?></option>
                        <option value="L">Laki-laki</option>
                        <option value="P">Perempuan</option>
                      </select>
            </p>
            <input type="submit" name="update" value="EDIT">
        </form>
    </body>
</html>

Penjelasan :

<?php
//Koneksi ke database
$server   = "localhost";
$username = "root";
$password = "";
$database = "mahasiswaku";
 
$mysqli = new mysqli ($server, $username, $password, $database);
if (mysqli_connect_errno()) {
    echo 'Koneksi gagal dilakukan dengan alasan : '.mysqli_connect_error();
    exit();
    mysqli_close($mysqli);
}
//Akhir Koneksi--------------------------------------------------------- 

disini sudah kita jelaskan pada artikel Create, yang berfungsi untuk mengkoneksikan antara php dengan database mysql.

$data = mysqli_query($mysqli, "SELECT * FROM data_mahasiswa WHERE id='$_GET[id]'");
$datashow = mysqli_fetch_array($data); 

kita akan memanggil data_mahasiswa yang ada pada database mahasiswaku agar bisa digunakan untuk memunculkan setiap data pada kolom nama,nim dan jenis kelamin. Pemanggilannya melalui WHERE id=’$_GET[id] ini berfungsi untuk pemanggilan pemilik varibel $_GET yang ada di link browser.

<input type="hidden" name="id" value="<?php echo $_GET['id'];?>">
Nama : <input type="text" name="nama" value="<?php echo $datashow['nama']; ?>"> <br>
NIM &nbsp: <input type="text" name="nim" value="<?php echo $datashow['nim']; ?>"> <br>

pada kolom-kolom ini kita harus menambahkan value”” nya agar bisa memanggil data di database seperti value=”<?php echo $datashow[‘nama’]; ?> disini hanya memunculkan nama saja menurutu $_GET[id] yang terpilih. Pada type hidden tersebut menampilkan id dari mahasiswa untuk dipergunakan pada action_update.php

Kelamin : <select name="jk">
<option value="value="<?php echo $datashow['jk']; ?>"">
<?php if ($datashow['jk']=='P') { echo "Perempuan";} elseif ($datashow['jk']=='L') { echo "Laki-laki";} else { echo "Kosong";}?></option>
                        <option value="L">Laki-laki</option>
                        <option value="P">Perempuan</option>
                      </select>

Nah, jika pada jenis Kelamin disini saya ada penambahan untuk menampilkan data, karena pada saat di create.php kita menyimpan data hanya dengan “L” dan “P” jadi, jika kita langsung kita buat value=”<?php echo $datashow[‘jk’]; ?>” maka akan keluar “L” atau “P” saja dan ini akan terlihat kurang menarik. Saya menambahkan struktur kondisi IF-ELSE dimana jika yang ada di database itu “P” maka yang di echo tersebut Perempuan dan jika yang ada database itu “L” maka yang di echo tersebut Laki-laki.

<form action="action_update.php" method="post">
<input type="submit" name="update" value="EDIT">
</form>

jika tombol EDIT di tekan, maka action akan diarahkan ke action_update.php dan kita akan memaparkan source codenya sebagai berikut.

<?php
//Koneksi ke database
$server   = "localhost";
$username = "root";
$password = "meerzapoer";
$database = "mahasiswaku";

$mysqli = new mysqli ($server, $username, $password, $database);
if (mysqli_connect_errno()) {
echo 'Koneksi gagal dilakukan dengan alasan : '.mysqli_connect_error();
exit();
mysqli_close($mysqli);
}
//Akhir Koneksi---------------------------------------------------------

if(isset($_POST['update'])){
$id            = $_POST['id'];
$nama_data     = $_POST['nama'];
$nim_data    = $_POST['nim'];
$jk_data    = $_POST['jk'];

$data = mysqli_query($mysqli, "UPDATE data_mahasiswa SET nama='$nama_data', nim='$nim_data', jk='$jk_data' WHERE id='$id'") or die ("data salah : ".mysqli_error($mysqli));

if ($data) {
echo "Berhasil Update Data <br>";
echo "<a href='read.php'>Kembali</a>";
} else {
echo "Gagal Input Data!!! <br>";
echo "<a href='read.php'>Kembali</a>";
}
}
?>

penjelasan :

$data = mysqli_query($mysqli, "UPDATE data_mahasiswa SET nama='$nama_data', nim='$nim_data', jk='$jk_data' WHERE id='$id'") or die ("data salah : ".mysqli_error($mysqli));

kita akan mengupdate data_mahasiswa menurut id yang bertype hidden.

penjelasan-penjelasan yang lain disini hampir sama dengan action_create.php hanya saja ada penambahan type hidden id untuk pemanggilan di query. Berikut ini penampakan update data
update

jika source code diatas anda ketik dengan teliti berarti anda sudah bisa membuat update data dengan baik. Hanya ini yang bisa saya sharing ilmu dengan kawan-kawan semua, mudah-mudahan bisa bermanfaat untuk saya sendiri dan kawan-kawan. Jangan malu-malu untuk bertanya, kirim aja keluh kesah anda di komentar atau langsung mengirimkan email ke saya mirza.purnandi@gmail.com. Terima kasih 🙂

About Mirza

Check Also

codeigniter

Mengenal Framework CodeIgniter

Tahukah kalian apa itu framework Codeigniter…? Codeigniter yaitu aplikasi atau open source berupa framework dengan …

Leave a Reply