CRUD (Create, Read, Update, Delete) adalah salah satu operasi dasar dalam pengembangan aplikasi web. Berikut adalah contoh implementasi CRUD dengan PHP dan HTML:
1. Membuat Database
Pertama-tama, kita perlu membuat database untuk menyimpan data yang akan kita tambahkan, baca, perbarui, dan hapus. Berikut adalah contoh skema tabel yang dapat kita gunakan:
- Buka code Editor bisa dengan VSCode atau yang lainnya, saya sarankan menggunakan VSCode bisa mendownload di halaman resminya, download dan bisa ikuti langkah menginstall VSCode
- Setelah berhasil menginstal VSCode sialhkan buat file di dalam folder Htdocs Xampp, silahkan baca cara menginstall Xampp
- Buat Folder CRUD di dalam Htdocs berisi struktur : folder crud berisi file tipe index.html, create.php, view.php, delete.php dan membuat struktur deasin database, karena kita akan mengambil dan menyimpan data ke dalam database.
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`phone` varchar(20) NOT NULL,
`address` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. Membuat Koneksi Database
<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "database_name";// Membuat koneksi$conn = mysqli_connect($servername, $username, $password, $dbname);// Memeriksa koneksiif (!$conn) {die("Koneksi gagal: " . mysqli_connect_error());}?>
3. Membuat html untuk memasukan data
Buat file input.html
<!DOCTYPE html>
<html>
<head>
<title>Form Input Data</title>
</head>
<body>
<h1>Form Input Data</h1>
<form action="create.php" method="post">
<label for="name">Nama:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required><br><br>
<label for="phone">Telepon:</label>
<input type="tel" id="phone" name="phone" required><br><br>
<label for="address">Alamat:</label>
<textarea id="address" name="address" required></textarea><br><br>
<input type="submit" value="Simpan">
</form>
</body>
</html>
4. Membuat fungsi create data
<?php// Memeriksa apakah form telah dikirimkanif ($_SERVER["REQUEST_METHOD"] == "POST") {$name = $_POST["name"];$email = $_POST["email"];$phone = $_POST["phone"];$address = $_POST["address"];// Menyiapkan pernyataan SQL$sql = "INSERT INTO users (name, email, phone, address) VALUES ('$name', '$email', '$phone', '$address')";// Menjalankan pernyataan SQLif (mysqli_query($conn, $sql)) {echo "Data berhasil disimpan";} else {echo "Error: " . $sql . "<br>" . mysqli_error($conn);}}// Menutup koneksimysqli_close($conn);?>
5. Membuat php untuk menampilkan data
Buat file php view.php
<!DOCTYPE html>
<html>
<head>
<title>Tampil Data</title>
</head>
<body>
<h1>Data Pengguna</h1>
<a href="create.php">Tambah Data</a>
<br><br>
<table border="1">
<tr>
<th>No.</th>
<th>Nama</th>
<th>Email</th>
<th>Telepon</th>
<th>Alamat</th>
<th>Aksi</th>
</tr>
<?php
// Menampilkan data dari database
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$i = 1;
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>" . $i . "</td>";
echo "<td>" . $row["name"] . "</td>";
echo "<td>" . $row["email"] . "</td>";
echo "<td>" . $row["phone"] . "</td>";
echo "<td>" . $row["address"] . "</td>";
echo "<td><a href='update.php?id=" . $row["id"] . "'>Edit</a> | <a href='delete.php?id=" . $row["id"] . "'>Hapus</a></td>";
echo "</tr>";
$i++;
}
} else {
echo "<tr><td colspan='6'>Tidak ada data</td></tr>";
}
?>
</table>
</body>
</html>
6. Membuat file read data php
<?php// Memeriksa koneksiif (!$conn) {die("Koneksi gagal: " . mysqli_connect_error());}// Menyiapkan pernyataan SQL$sql = "SELECT * FROM users";$result = mysqli_query($conn, $sql);// Memeriksa apakah ada dataif (mysqli_num_rows($result) > 0) {// Menampilkan data ke dalam tabelwhile ($row = mysqli_fetch_assoc($result)) {echo "ID: " . $row["id"] . "<br>";echo "Nama: " . $row["name"] . "<br>";echo "Email: " . $row["email"] . "<br>";echo "Telepon: " . $row["phone"] . "<br>";echo "Alamat: " . $row["address"] . "<br><br>";}} else {echo "Tidak ada data";}// Menutup koneksimysqli_close($conn);?>
7. Membuat php untuk melakukan perubahan pada data
<?php// Memeriksa apakah ID data telah dikirimif (isset($_GET["id"]) && !empty(trim($_GET["id"]))) {// Memperoleh ID data dari parameter URL$id = trim($_GET["id"]);// Memeriksa koneksiif (!$conn) {die("Koneksi gagal: " . mysqli_connect_error());}// Menyiapkan pernyataan SQL untuk memperoleh data$sql = "SELECT * FROM users WHERE id = ?";if ($stmt = mysqli_prepare($conn, $sql)) {// Mengikat variabel ke parametermysqli_stmt_bind_param($stmt, "i", $param_id);// Menetapkan nilai parameter$param_id = $id;// Mengeksekusi pernyataanif (mysqli_stmt_execute($stmt)) {// Memperoleh hasil$result = mysqli_stmt_get_result($stmt);if (mysqli_num_rows($result) == 1) {// Memperoleh data dari baris hasil$row = mysqli_fetch_assoc($result);$name = $row["name"];$email = $row["email"];$phone = $row["phone"];$address = $row["address"];} else {// Jika ID data tidak valid, redirect ke halaman tampilheader("location: tampil.php");exit();}} else {echo "Terjadi kesalahan. Silakan coba lagi.";}}// Menutup pernyataanmysqli_stmt_close($stmt);// Menutup koneksimysqli_close($conn);} else {// Jika tidak ada ID data yang dikirim, redirect ke halaman tampilheader("location: tampil.php");exit();}// Memproses data yang dikirim setelah form di-submitif (isset($_POST["submit"])) {// Memeriksa koneksiif (!$conn) {die("Koneksi gagal: " . mysqli_connect_error());}// Memperoleh nilai dari form$name = trim($_POST["name"]);$email = trim($_POST["email"]);$phone = trim($_POST["phone"]);$address = trim($_POST["address"]);// Menyiapkan pernyataan SQL untuk memperbarui data$sql = "UPDATE users SET name = ?, email = ?, phone = ?, address = ? WHERE id = ?";if ($stmt = mysqli_prepare($conn, $sql)) {// Mengikat variabel ke parametermysqli_stmt_bind_param($stmt, "ssssi", $param_name, $param_email, $param_phone, $param_address, $param_id);// Menetapkan nilai parameter$param_name = $name;$param_email = $email;$param_phone = $phone;$param_address = $address;$param_id = $id;// Mengeksekusi pernyataanif (mysqli_stmt_execute($stmt)) {// Data berhasil diperbarui, redirect ke halaman tampilheader("location: tampil.php");exit();} else {echo "Terjadi kesalahan. Silakan coba lagi.";}}//
8. Membuat php untuk menghapus data
Buat file detele.php
<?php
// Memeriksa apakah ID data telah dikirim
if (isset($_GET["id"]) && !empty(trim($_GET["id"]))) {
// Memperoleh ID data dari parameter URL
$id = trim($_GET["id"]);
// Memeriksa koneksi
if (!$conn) {
die("Koneksi gagal: " . mysqli_connect_error());
}
// Menyiapkan pernyataan SQL untuk menghapus data
$sql = "DELETE FROM users WHERE id = ?";
if ($stmt = mysqli_prepare($conn, $sql)) {
// Mengikat variabel ke parameter
mysqli_stmt_bind_param($stmt, "i", $param_id);
// Menetapkan nilai parameter
$param_id = $id;
// Mengeksekusi pernyataan
if (mysqli_stmt_execute($stmt)) {
// Data berhasil dihapus, redirect ke halaman tampil
header("location: tampil.php");
exit();
} else {
echo "Terjadi kesalahan. Silakan coba lagi.";
}
}
// Menutup pernyataan
mysqli_stmt_close($stmt);
// Menutup koneksi
mysqli_close($conn);
} else {
// Jika tidak ada ID data yang dikirim, redirect ke halaman tampil
header("location: tampil.php");
exit();
}
?>