Membuat CRUD dengan PHP MySQLi

PlajariKode
4 min readJul 28, 2020

--

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:

PlajariKode — struktur tabel produk

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.

--

--