Membuat CRUD dengan PHP Mysqli

Pada kesempatan ini saya akan menjelaskan tentang manipulasi data pada database yang paling umum yaitu CRUD dengan PHP Mysqli. CRUD sendiri adalah singkatan dari Create, Read, Update, Delete. 
  • Create adalah memasukan data baru kedalam database
  • Read adalah membaca dan menampilkan data dari database
  • Update adalah mengubah data pada database
  • Delete adalah menghapus data dari database
Buat sebuah database bernama mahasiswa dan pastekan perintah sql ini.
CREATE TABLE `mhs` (
  `nim` varchar(10) NOT NULL,
  `nama` varchar(30) NOT NULL,
  `tgllahir` date DEFAULT NULL,
  `alamat` text,
  `agama` varchar(15) NOT NULL,
  PRIMARY KEY (`nim`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `mhs` VALUES ('0411500121', 'Muhammad Zen', '1965-08-01', 'Medan', 'Islam');
INSERT INTO `mhs` VALUES ('12345', 'Andi Purnama', '2019-05-14', 'Medan', 'Islam');

Berikut ini contoh sebuah menu barnama bahasiswa yang di dalamnya terdapat CRUD. Buat sebuah file dengan nama config.php.

<?php
$mysqli=mysqli_connect('localhost','root','','mahasiswa');
mysqli_select_db($mysqli,'mahasiswa') or die("database tidak ditemukan");
?>

file diatas untuk membuat koneksi ke database dengan nama host username user root password kosong dan database barnama mahasiswa.php untuk menampilkan data dari database.
<!DOCTYPE html>
<html>
<head>
<title>Data Mahasiswa</title>
</head>
<body>
<?php
include('config.php');
$hasil= mysqli_query($mysqli,"select * from mhs;");
?>
<a href="tambah_data_mahasiswa.php"><input type="button" value="Tambah Data"></a>
<br>
<br>
<table border="1">
<tr>
<td>No</td><td>Nim</td><td>Nama</td><td>Tgl Lahir</td><td>Alamat</td><td>Agama</td><td>Aksi</td>
</tr>
<?php
$no=1;
while ($row= mysqli_fetch_array($hasil)) {
echo "<tr>
<td>$no</td><td>$row[nim]</td><td>$row[nama]</td><td>$row[tgllahir]</td><td>$row[alamat]</td><td>$row[agama]</td><td><a href='edit_data_mahasiswa.php?nim=$row[nim]'>Edit</a>";?>
<a href="aksi_hapus.php?nim=<?php echo $row[nim];?>" onclick="return confirm('are you sure?')">  Delete </a></td>
<?php
echo
"</tr>";
$no++;
}
?>
</table>
</body>
</html>
Read Data
Selanjutnya create yaitu menambahkan data baru kedalam database melalui link tombol Tambah Data seperti gambar diatas. Buat file dengan nama tambah_data_mahasiswa.php.
<!DOCTYPE html>
<html>
<head>
<title> Tambah Data Mahasiswa</title>
</head>
<body>
<form action="aksi_tambah_data_mahasiswa.php" method="POST">
<table>
<caption>Tambah Data Mahasiswa</caption>
<tr>
<td>Nim :</td><td><input type="text" name="nim"></td>
</tr>
<tr>
<td>Nama :</td><td><input type="text" name="nama"></td>
</tr>
<tr>
<td>Tanggal Lahir :</td><td><input type="date" name="tgllahir"></td>
</tr>
<tr>
<td>Alamat :</td><td><input type="text" name="alamat"></td>
</tr>
<tr>
<td>Agama :</td><td>
<select name="agama">
<option value="Islam">Islam</option>
<option value="Kristen">Kristen</option>
<option value="Katolik">Katolik</option>
<option value="Hindu">Hindu</option>
<option value="Budha">Budha</option>
</select>
</td>
</tr>
<tr>
<td><input type="submit" value="simpan"></td>
<td><a href="#"><input type="button" value="batal"></a></td>
</tr>
</table>
</form>
</body>
</html>
Create Data
Selanjutnya buat file dengan nama aksi_tambah_data_mahasiswa.php sebagai tujuan action form.

<?php
$nim=$_POST['nim'];
$nama=$_POST['nama'];
$tgllahir=$_POST['tgllahir'];
$alamat=$_POST['alamat'];
$agama=$_POST['agama'];
include('config.php');
mysqli_query($mysqli," insert into mhs values ('$nim','$nama','$tgllahir','alamat','agama')");
header("location:http:/mahasiswa/mahasiswa.php");
?>

Selanjutnya update yaitu mengubah data melalui link Edit di kolom aksi, buat sebuah file dengan nama edit_data_mahasiswa.php.

<!DOCTYPE html>
<html>
<head>
<title> Edit Data Mahasiswa</title>
</head>
<body>
<form action="aksi_edit_data_mahasiswa.php" method="POST">
<table>
<caption>Edit Data Mahasiswa</caption>
<?php
include("config.php");
$hasil=mysqli_query($mysqli,"select * from mhs where nim='$_GET[nim]'");
$row=mysqli_fetch_array($hasil);
?>
<tr>
<td></td><td><input type="text" name="nim" value="<?php echo $row['nim'] ?>" hidden></td>
</tr>
<tr>
<td>Nama :</td><td><input type="text" name="nama" value="<?php echo $row['nama'] ?>"></td>
</tr>
<tr>
<td>Tanggal Lahir :</td><td><input type="date" name="tgllahir" value="<?php echo $row['tgllahir'] ?>"></td>
</tr>
<tr>
<td>Alamat :</td><td><input type="text" name="alamat" value="<?php echo $row['alamat'] ?>"></td>
</tr>
<tr>
<td>Agama :</td><td>
<select name="agama" value="<?php echo $row['agama'] ?>">
<option value="Islam">Islam</option>
<option value="Kristen">Kristen</option>
<option value="Katolik">Katolik</option>
<option value="Hindu">Hindu</option>
<option value="Budha">Budha</option>
</select>
</td>
</tr>
<tr>
<td><input type="submit" value="simpan"></td>
<td><a href="#"><input type="button" value="batal"></a></td>
</tr>
</table>
</form>
</body>
</html>
Update Data
sama seperti tambah data kita harus membuat file tujuan action, beri nama aksi_edit_data_mahasiswa.php.

<?php
$nim=$_POST['nim'];
$nama=$_POST['nama'];
$tgllahir=$_POST['tgllahir'];
$alamat=$_POST['alamat'];
$agama=$_POST['agama'];
include('config.php');
mysqli_query($mysqli,"update mhs set
nama='$nama',
tgllahir='$tgllahir',
alamat='$alamat',
agama='$agama' where nim='$nim'");
header("location:http://localhost/mahasiswa/mahasiswa.php");
?>
Terakhir untuk Delete data yang dipanggil melalui link Delete di kolom aksi. Kita tidak butuh form input maka buat sebuah file dengan nama aksi_hapus.php.

<?php
include("config.php");
mysqli_query($mysqli,"delete from mhs where nim='$_GET[nim]'");
header("location:mahasiswa.php");
?>
Ketika link delete di klik maka akan muncul konfirmasi dan jika ya maka data di hapus. Sebagai penjelasan akhir berikut ini beberapa fungsi mysqli:
  • mysqli_connect adalah perintah koneksi kedatabase yang ditampung dalam variabel $mysqli yang digunakan di banyak form dengan menggunakan perintah include("config.php")
  • mysqli_query(parameter 1, parameter 2) parameter pertama adalah sring koneksi ($mysqli) dan parameter kedua adalah perintah sql.
  • mysqli_fetch_array() memecah objek tabel menjadi array. perintah ini hanya ada di Read.
  • include memanggil file lain kedalam sebuah file.
Itulah hal-hal yang baiknya dipahami untuk CRUD di bahasa pemrograman PHP dan database mysqli. Sebagai tambahan mysqli sebagai ganti dari mysql yang sudah tdk dikembangkan (support) lagi.

struktur projek
mahasiswa (folder)
---mahasiswa.php (file)
---tambah_data_mahasiswa.php (file)
---aksi_tambah_data_mahasiswa.php (file)
---edit_data_mahasiswa.php (file)
---aksi_edit_data_mahasiswa.php (file)
---aksi_hapus.php (file)
---config.php (file)

Terimakasih sudah membaca..

Popular posts from this blog

Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis

Aplikasi CRUD menggunakan Template Admin LTE

Cara membuat Link ke Halaman lain dan Link ke bagian Halaman