Membuat CRUD dengan PHP MySQLi
Belajar PHP — Membuat CRUD dengan PHP MySQLi.
Dalam pemrograman komputer, Create, Read, Update dan Delete (CRUD) adalah empat fungsi dasar penyimpanan pada database.
Kadang kala digunakan ketika mendefinisikan empat fungsi dasar CRUD, seperti membuat atau menambahkan data disebut Create, mengambil data disebut Read, memodifikasi disebut Update, dan menghancurkan atau menghapus disebut dengan Delete.
MySQLi
Ekstensi MySQLi (MySQL Improved) adalah driver database relasional yang digunakan dalam bahasa scripting PHP untuk menyediakan antarmuka dengan database MySQL.
Perbedaan MySQL dengan MySQLi
Pada dasarnya, MySQL adalah database driver lama, dan MySQLi adalah driver peningkatannya. Huruf “i” pada MySQLi merupakan singkatan dari “Improved “.
MySQLi dapat dilakukan dengan cara prosedural dan berorientasi objek, sedangkan MySQL hanya dapat digunakan secara prosedural saja.
Baiklah.. Langsung saja berikut adalah kode untuk CRUD dengan PHP MySQLi.
Artikel terkait: Pencarian data menggunakan PHP
Database
Pertama buat dulu databasenya, disini saya buat database dengan nama test dan didalamnya terdapat tabel dengan nama produk.
Struktur tabelnya akan seperti berikut:
Pastekan kode berikut pada menu SQL untuk membuat database beserta tabel didalamnya.
--
-- Database: `test`
-- CREATE DATABASE IF NOT EXISTS `test`; -- buat database test jika belum ada
USE `test`; -- gunakan database test --
-- Struktur dari tabel `produk`
-- CREATE TABLE `produk` (
`id_produk` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`nama_produk` varchar(50) NOT NULL,
`harga` int(11) NOT NULL,
`qty` int(11) NOT NULL
);
koneksi.php
Untuk menyambungkan ke database tentunya kita membutuhkan koneksi, berikut kodenya.
<?php$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'test'; // nama databasenya$conn = new mysqli($host, $username, $password, $db_name);?>
index.php
Pertama kita buat file index.php ini untuk menampilkan ( Read) semua data dari database dan juga terdapat form untuk menambahkan ( Create) data.
<?php
// panggil koneksinya
require_once 'koneksi.php';
?><!DOCTYPE html>
<html>
<head>
<title>PLajariKode - CRUD dengan PHP MySQLi</title>
</head>
<body>
<h1>PlajariKode - CRUD dengan PHP MySQLi</h1>
<!--
Create atau menambahkan data baru
Data akan dikirimkan ke add.php untuk diproses
-->
<form method="post" action="add.php">
<input type="text" name="nama_produk" placeholder="Nama Produk">
<input type="number" name="harga" placeholder="Harga">
<input type="number" name="qty" placeholder="Qty">
<input type="submit" name="submit" value="Tambah Data">
</form><br/><!-- Read atau menampilkan data dari database -->
<table border="1">
<tr>
<th>No.</th> <th>Nama Produk</th>
<th>Harga</th>
<th>Qty</th>
<th colspan="2">Aksi</th>
</tr><?php
// Tampilkan semua data
$q = $conn->query("SELECT * FROM produk");$no = 1; // nomor urut
while ($dt = $q->fetch_assoc()) :
?><tr>
<td><?= $no++ ?></td>
<td><?= $dt['nama_produk'] ?></td>
<td><?= $dt['harga'] ?></td>
<td><?= $dt['qty'] ?></td>
<td><a href="update.php?id=<?= $dt['id_produk'] ?>">Ubah</a></td>
<td><a href="delete.php?id=<?= $dt['id_produk'] ?>" onclick="return confirm('Anda yakin akan menghapus data ini?')">Hapus</a></td>
</tr><?php
endwhile;
?></table>
</body>
</html>
Output:
add.php
Pada file ini kita membuat kode untuk proses penambahan ( Insert) data ke database.
<?phprequire_once 'koneksi.php';if (isset($_POST['submit'])) {
$n_produk = $_POST['nama_produk'];
$harga = $_POST['harga'];
$qty = $_POST['qty'];// id_produk bernilai '' karena kita set auto increment
$q = $conn->query("INSERT INTO produk VALUES ('', '$n_produk', '$harga', '$qty')");if ($q) {
// pesan jika data tersimpan
echo "<script>alert('Data produk berhasil ditambahkan'); window.location.href='index.php'</script>";
} else {
// pesan jika data gagal disimpan
echo "<script>alert('Data produk gagal ditambahkan'); window.location.href='index.php'</script>";
}
} else {
// jika coba akses langsung halaman ini akan diredirect ke halaman index
header('Location: index.php');
}
update.php
Pada file ini kita akan menampilkan kembali data yang akan diubah.
<?phprequire_once 'koneksi.php';if (isset($_GET['id'])) {
$id = $_GET['id'];$q = $conn->query("SELECT * FROM produk WHERE id_produk = '$id'");foreach ($q as $dt) :
?><h1>PlajariKode - CRUD dengan PHP MySQL</h1>
<h2>Halaman Ubah Data</h2><form action="proses_update.php" method="post">
<input type="hidden" name="id_produk" value="<?= $dt['id_produk'] ?>">
<input type="text" name="nama_produk" value="<?= $dt['nama_produk'] ?>">
<input type="number" name="harga" value="<?= $dt['harga'] ?>">
<input type="number" name="qty" value="<?= $dt['qty'] ?>">
<input type="submit" name="submit" value="Ubah Data">
</form><?php
endforeach;
}
Output:
proses_update.php
Data yang diubah pada halaman update akan dikirimkan kesini untuk proses perubahan ( Update) data.
<?phprequire_once 'koneksi.php';if (isset($_POST['submit'])) {
$id = $_POST['id_produk'];
$n_produk = $_POST['nama_produk'];
$harga = $_POST['harga'];
$qty = $_POST['qty'];$q = $conn->query("UPDATE produk SET nama_produk = '$n_produk', harga = '$harga', qty = '$qty' WHERE id_produk = '$id'");if ($q) {
// pesan jika data berubah
echo "<script>alert('Data produk berhasil diubah'); window.location.href='index.php'</script>";
} else {
// pesan jika data gagal diubah
echo "<script>alert('Data produk gagal diubah'); window.location.href='index.php'</script>";
}
} else {
// jika coba akses langsung halaman ini akan diredirect ke halaman index
header('Location: index.php');
}
delete.php
Dan yang terakhir yaitu hapus ( Delete) data dari database.
<?phprequire_once 'koneksi.php';if (isset($_GET['id'])) {
$id = $_GET['id'];// perintah hapus data berdasarkan id yang dikirimkan
$q = $conn->query("DELETE FROM produk WHERE id_produk = '$id'");// cek perintah
if ($q) {
// pesan apabila hapus berhasil
echo "<script>alert('Data berhasil dihapus'); window.location.href='index.php'</script>";
} else {
// pesan apabila hapus gagal
echo "<script>alert('Data berhasil dihapus'); window.location.href='index.php'</script>";
}
} else {
// jika mencoba akses langsung ke file ini akan diredirect ke halaman index
header('Location:index.php');
}
Nah.. Itu saja untuk CRUD sederhana dengan PHP MySQLi. Selamat mencoba dan terimakasih.
Artikel terkait:
https://www.plajarikode.com/2020/05/pencarian-data-menggunakan-php-mysql.html
Artikel menarik lainnya:
https://www.plajarikode.com/2020/07/show-hide-form-password-dengan-javascript.html
Originally published at https://www.plajarikode.com.