Update Data dari Database dengan PHP

Ditulis Oleh:

Update data dari database dengan PHP – Setelah sebelumnya saya membagikan tentang cara menampilkan data dari database dengan menggunakan bahasa pemrograman php, namun pada postingan tersebut hanya sebatas menampilkan saja (read). Pada postingan kali ini kita akan membuat fitur update pada data yang ditampilkan dari database tersebut. Artikel ini merupakan bagian dari membuat aplikasi CRUD (Create read update dan delete) sederhana dengan php dan mysqli.

Update data dari database menggunakan PHP memang sangat diperlukan dalam sebuah aplikasi. Tanpa fungsi update tentu saja kita tidak dapat memperbaharui data yang ada didalam database. Sebelumnya saya telah memposting artikel terkait mengenai

Sekarang mari simak pembahan kita untuk membuat fungsi update dengan menggunakan php.

Konfigurasi Database

Buat dulu sebuah database kalian bisa menggunakan perintah sql dengan cmd atau melalui tools phpMyadmin

create database penjualan

Gunakan database penjualan dengan perintah

use penjualan;

Buat sebuah tabel didalam database penjualan yang telah kita buat

create table barang (
id_barang int not null auto_increment primary key,
nama_barang varchar(20) not null,
harga int,
stok int
);

Selanjutnya kita masukan beberapa contoh data kedalam tabel barang

INSERT INTO barang(nama_barang,harga,stok)
VALUES ('Sepatu',250000,10),
       ('Tas',175000,20),
       ('Topi',45000,50),
       ('Kaos',88000,30),
       ('Celana',96000,40);

Membuat File Koneksi Database

Selanjutnya kita membuat sebuah file dengan nama koneksi.php, file ini berfungsi untuk mengkoneksikan aplikasi kita berbasis PHP dengan database yang telah kita buat diatas

<?php
$host="localhost";
$user="root";
$password="";
$db="penjualan";

$kon = mysqli_connect($host,$user,$password,$db);
if (!$kon){
	  die("Koneksi gagal:".mysqli_connect_error());
}
?>

Membuat file tampil-barang.php

Pada tahap ini kita membuat file untuk menampilkan data barang dari database dengan menggunakan bootstrap sebagai tampilan css nya. Saya sudah mendownload bootstrap sebelumnya. Buat kalian yang ingin belajar menggunakan bootstrap kalian bisa membaca artikel-artikel terkait bootstrap pada situs ini

Disini saya telah mendownload bootstrap sebelumnya dan saya simpan didalam folder htdocs/penjualan sama seperti pada file koneksi dan tampil-barang

file bootstrap

Untuk menggunakan bootstrap cukup meload css bootstrap pada bagian <head> dalam dokumen html

   <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">

Perhatikan pada file tampil-barang.php berikut ini:

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br>

 <h4>Tampil Barang</h4>

		 
<table class="table table-hover">
    <thead>
      <tr>
        <th>No</th>
        <th>Nama Barang</th>
		 <th>Harga</th>
		 <th>Stok</th>
		  <th colspan='2'>Aksi</th>

      </tr>
    </thead>
    <?php 
	include "koneksi.php";
	$sql="select * from barang order by id_barang desc";
	
	$hasil=mysqli_query($kon,$sql);
	$no=0;
	while ($data = mysqli_fetch_array($hasil)) {
	$no++;

	?>
	<tbody>
      <tr> 
		<td><?php echo $no;?></td> 
		<td><?php echo $data["nama_barang"]; ?></td> 
		<td><?php echo $data["harga"];   ?></td> 
		<td><?php echo $data["stok"];   ?></td> 
		<td>  <a href="update-barang.php?id_barang=<?php echo $data['id_barang']; ?>" class="btn btn-warning" role="button">Update</a>
		</td>
	  </tr>
    </tbody>  
	<?php 
	}
	?>		    
</table>
</div>
</body>
</html>

pada file tampil-barang.php ini saya menggunakan tabel pada bootstrap. Cukup dengan memanggil class table pada tag table html.

Perhatikan sintak pada bagian ini

    <?php 
	include "koneksi.php";
	$sql="select * from barang order by id_barang desc";
	
	$hasil=mysqli_query($kon,$sql);
	$no=0;
	while ($data = mysqli_fetch_array($hasil)) {
	$no++;

	?>

Sintak ini berfungsi pertama untuk meload file koneksi.php yang telah kita buat sebelumnya, fungsinya untuk mengkoneksikan aplikasi php kita dengan database. Lalu ada perintah query

select * from barang order by id_barang desc

Perintah sql ini akan menampilkan semua data yang terdapat pada tabel barang dan diurutkan berdasarkan id_barang secara descending (dari besar ke kecil).

$hasil=mysqli_query($kon,$sql);

Fungsi dari sintak ini adalah untuk menjalankan query diatas, dengan menggunakan dua parameter yaitu variabel $kon , untuk koneksi ke database dan variabel $sql untuk perintah sql yang ingin dieksekusi. Kemudian hasilnya disimpan pada variabel $hasil.

while ($data = mysqli_fetch_array($hasil)) {

Sintak diatas berfungsi untuk mengambil nilai dari query yang dijalnkan melalui variabel $hasil. nilai diambil menggunakan perulangan while dan akan disimpan dalam bentuk array.

<td><?php echo $no;?></td> 
<td><?php echo $data["nama_barang"]; ?></td> 
<td><?php echo $data["harga"];   ?></td> 
<td><?php echo $data["stok"];   ?></td> 
<td>  <a href="update-barang.php?id_barang=<?php echo $data['id_barang']; ?>" class="btn btn-warning" role="button">Update</a></td>

Pada bagian sintak ini berfungsi untuk menampilkan data-data yang telah diambil dari tabel barang dan disimpan dalam variabel $data dalam bentuk array, data yang disimpan berbentuk array assosiatif.

Buat sebuah file update-barang.php

Selanjutnya kita membuat file untuk form update barang, ketika tombol update di klik maka halaman akan diarahkan pada halaman update barang ini dengan mengacu id_barang mana yang ingin diupdate.

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br>
    <?php 
	include "koneksi.php";
	$id_barang= $_GET['id_barang'];
	$sql="select * from barang where id_barang=$id_barang";
	
	$hasil=mysqli_query($kon,$sql);
	$data = mysqli_fetch_assoc($hasil);
	?>
<h2>Input Data Barang</h2>
    <form action="simpan-update.php" method="post">
        <div class="form-group">
            <label>Nama Barang:</label>
            <input type="text" name="nama_barang" value="<?php echo $data['nama_barang']; ?>" class="form-control" placeholder="Masukan nama barang" />
        </div>
        <div class="form-group">
            <label>Harga:</label>
            <input type="number" name="harga" value="<?php echo $data['harga']; ?>" class="form-control" placeholder="Masukan harga" />
        </div>
		<div class="form-group">
            <label>Stok:</label>
            <input type="number" name="stok" value="<?php echo $data['stok']; ?>" class="form-control" placeholder="Masukan stok" />
        </div>
		<input type="hidden" name="id_barang" value="<?php echo $id_barang; ?>"/>
        <button type="submit" name="submit" class="btn btn-primary">Submit</button>

    </form>
</div>
</body>
</html>

Untuk mengambil id_barang menggunakan metode $_GET karena id_barang yang dikirim menggunakan metode tersebut, kalau kita perhatikan id_barangnya tampil pada url.

Selanjutnya terdapat perintah sql

select * from barang where id_barang=$id_barang

Yang berfungsi untuk mengambil data barang berdasarkan id_barang yang diterima melalui metode $GET tersebut.

Nantinya query tersebut akan dieksekusi dan disimpan dalam bentuk array assosiatif menggnakan function mysqli_fetch_assoc.

$hasil=mysqli_query($kon,$sql);
$data = mysqli_fetch_assoc($hasil);

Untuk menampilkan nilai pada field form isian maka menggunakan atribut value dengan mengambil nilai pada arra $data untuk masing-masing field.

value="<?php echo $data['nama_barang']; ?>"
value="<?php echo $data['harga']; ?>"
value="<?php echo $data['stok']; ?>"

Saya juga membuat sebuah field dengan tipe hidden, field ini tidak akan terlihat, fungsinya untuk menyimpan nilai vaiabel dari id_barang yang nantinya akan digunakan saat ekseksusi hasil updetan data

<input type="hidden" name="id_barang" value="<?php echo $id_barang; ?>"/>

Buat file simpan-update.php

Terakhir kita membuat file untuk menerima semua hasil pembaharuan data melalui form update data barang.

<?php
//Include file koneksi ke database
include "koneksi.php";

//menerima nilai dari kiriman form update-barang 
$id_barang=$_POST["id_barang"];
$nama_barang=$_POST["nama_barang"];
$harga=$_POST["harga"];
$stok=$_POST["stok"];

	//perintah sql untuk update data barang berdasarkan id_barang yang akan di update
	$sql="update barang set
		nama_barang='$nama_barang',
		harga='$harga',
		stok='$stok'
		where id_barang=$id_barang";
		
	//Eksekusi query sql diatas
	$hasil=mysqli_query($kon,$sql);

		//kondisi apabila gagal maka akan tampil pemberitahuan gagal
		if (!$hasil) {
			echo "Gagal Update data barang";
			exit;
		}
	//apabila berhasil maka halaman akan di redirect ke tampil-barang.php	
	header("Location:tampil-barang.php");
?>

Secara garis besar sintak pada file simpan-update.php terbagi kedalam 5 bagian

Bagian pertama adalah untuk konfigurasi load database, dengan file koneksi.php, bagian kedua untuk menerima nilai dari kiriman form update barang, kemudian pada bagian ketiga untuk eksekusi perintah update sesuai dengan nilai form yang dikirm. Bagian keempat untuk mengeksekusi query tersebut. Bagian terakhir sebagai fungsi kondisi untuk mengecek apakah eksekusi query berhasil atau tidak, bila tidak berhasil sistem akan menampilkan pemberitahuan “Gagal update data barang”. Sedangkan bila berhasil aka halaman akan diarahkan langsung ke halaman tampil-barang.php

Uji Coba

Sekarang saatnya kita coba untuk menjalankan aplikasi nya

http://localhost/penjualan/tampil-barang.php
uji coba update data dari database dengan php

Ketika kita mengakses file tampil-barang.php maka menampilkan data barang, kemudian ketika kita menekan salah satu tombol update maka kita akan diarahkan pada form update data, selanjutnya kita coba ubah data barang tersebut lalu kemudian klik tombol submit, maka kita akan diarahkan kembali ke tampil barang dengan kondisi data barang yang sudah terupdate.

Kesimpulan

Sekian artikel mengenai update data dari database dengan PHP. Semoga bermanfaat buat teman-teman semua, kalian juga bisa bertanya melalui kolom komentar dibawah. Sampai jumpa pada pembahasan-pembahasan berikutnya.

Setiawan Dimas

Interested on Programming, especially on Website Developping.
Have a bachelor degree from STIMIK Akakom Yogyakarta, majoring in Technical Information.
Focus on Content Writer Programming Website and Internet Marketing
Setiawan Dimas