CRUD PDA PHP #8
CRUD atau Create (membuat data) , Read (membaca atau menampilkan data yang sudah dibuat), Update (mengubah data yang sudah di buat) dan Delete (menghapus data yang sudah dibuat).
CREATE
Langkah pertama siapkan file index.php, tambah.php dan function.php, file index.php silahkan ketikan code dibawah ini :
<?php
require 'function.php';
$mahasiswa = query("SELECT * FROM mahasiswa");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Data Mahasiswa</title>
</head>
<body>
<h1>Daftar Mahasiswa</h1>
<a href="tambah.php">Tambah Data</a>
<br><br>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>No.</th>
<th>Aksi</th>
<th>Photo</th>
<th>Nama</th>
<th>NPM</th>
<th>Jurusan</th>
<th>Email</th>
</tr>
<?php $i = 1; ?>
<?php foreach ($mahasiswa as $row) : ?>
<tr>
<td> <?= $i; ?> </td>
<td>
<a href="">Ubah</a> |
<a href="">Hapus</a>
</td>
<td><img src="img/<?php echo $row["gambar"] ?>" width="50"></td>
<td><?php echo $row["nama"] ?></td>
<td><?php echo $row["npm"] ?></td>
<td><?php echo $row["jurusan"] ?></td>
<td><?php echo $row["email"] ?></td>
</tr>
<?php $i++; ?>
<?php endforeach; ?>
</table>
</body>
</html>

Untuk file tambah.php silahkan isikan code dibawah ini :
<?php
require 'function.php';
$mahasiswa = query("SELECT * FROM mahasiswa");
//cek apakah tombol submit sudah di tekan atau belum
if (isset($_POST["submit"])) {
//cek apakah data berhasil di tambahkan atau tidak
if (tambah($_POST) > 0) {
echo "
<script>
alert('data berhasil ditambahkan');
document.location.href = 'index.php';
</script>
";
} else {
echo "
<script>
alert('data gagal ditambahkan');
document.location.href = 'tambah.php';
</script>
";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tambah Data Mahasiswa</title>
</head>
<body>
<h1>Tambah Data Mahasiswa</h1>
<form action="" method="POST">
<ul>
<li>
<label for="nama"> NAMA : </label>
<input type="text" name="nama" id="nama" required>
</li>
<li>
<label for="npm"> NPM : </label>
<input type="text" name="npm" id="npm" required>
</li>
<li>
<label for="jurusan"> JURUSAN : </label>
<input type="text" name="jurusan" id="jurusan" required>
</li>
<li>
<label for="email"> EMAIL : </label>
<input type="text" name="email" id="email" required>
</li>
<li>
<label for="gambar"> PHOTO : </label>
<input type="text" name="gambar" id="gambar" required>
</li>
<li>
<button type="submit" name="submit">Tambah Data</button>
</li>
</ul>
</form>
</body>
</html>

Untuk file function.php silahkan isikan code dibawah ini :
<?php
//koneksi database
$db = mysqli_connect("localhost", "root", "", "belajarphp");
//fungsi untuk menampilkan query
function query($query)
{
global $db;
$result = mysqli_query($db, $query);
$rows = [];
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}
function tambah($data)
{
global $db;
$npm = htmlspecialchars($data["npm"]);
$nama = htmlspecialchars($data["nama"]);
$jurusan = htmlspecialchars($data["jurusan"]);
$email = htmlspecialchars($data["email"]);
$gambar = htmlspecialchars($data["gambar"]);
$query = "INSERT INTO mahasiswa VALUES
('', '$npm', '$nama', '$jurusan', '$email', '$gambar')";
mysqli_query($db, $query);
return mysqli_affected_rows($db);
}
Keterangan :
htmlspecialchars agar bisa membuat data yang dikirimkan supaya tidak membahayakan sistem
required data tidak boleh kosong
DELETED
Untuk menghapus data yang sudah ada, silahkan ketika code dibawah ini didalam file index.php :
<td>
<a href="">Ubah</a> |
<a href="hapus.php?id=<?php echo $row["id"] ?>" onclick="return confirm('Yakin Ingin Menghapus Data'); ">Hapus</a>
</td>
Lalu tambhakan function hapus pada function.php
function hapus($id)
{
global $db;
mysqli_query($db, "DELETE FROM mahasiswa WHERE id = $id");
return mysqli_affected_rows($db);
}
Lalu tambahkan file hapus.php seperti dibawah ini :
<?php
require 'function.php';
$id = $_GET["id"];
if (hapus($id) > 0) {
echo "
<script>
alert('data berhasil dihapus');
document.location.href = 'index.php';
</script>
";
} else {
echo "
<script>
alert('data gagal ditambahkan');
document.location.href = 'index.php';
</script>
";
}
UPDATE
Untuk mengubah data yang sudah ada, silahkan ketika code dibawah ini didalam file index.php :
<?php
require 'function.php';
$mahasiswa = query("SELECT * FROM mahasiswa");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Data Mahasiswa</title>
</head>
<body>
<h1>Daftar Mahasiswa</h1>
<a href="tambah.php">Tambah Data</a>
<br><br>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>No.</th>
<th>Aksi</th>
<th>Photo</th>
<th>Nama</th>
<th>NPM</th>
<th>Jurusan</th>
<th>Email</th>
</tr>
<?php $i = 1; ?>
<?php foreach ($mahasiswa as $row) : ?>
<tr>
<td> <?= $i; ?> </td>
<td>
<a href="ubah.php?id=<?php echo $row["id"]; ?>">Ubah</a> |
<a href="hapus.php?id=<?php echo $row["id"]; ?>" onclick="return confirm('Yakin Ingin Menghapus Data'); ">Hapus</a>
</td>
<td><img src="img/<?php echo $row["gambar"] ?>" width="50"></td>
<td><?php echo $row["nama"] ?></td>
<td><?php echo $row["npm"] ?></td>
<td><?php echo $row["jurusan"] ?></td>
<td><?php echo $row["email"] ?></td>
</tr>
<?php $i++; ?>
<?php endforeach; ?>
</table>
</body>
</html>
Lalu kemudian buat halaman baru simpan dengan nama ubah.php
<?php
require 'function.php';
//ambil data di URL
$id = $_GET["id"];
// query data mahasiswa berdasarkan id
$mhs = query("SELECT * FROM mahasiswa WHERE id = $id")[0];
//cek apakah tombol submit sudah di tekan atau belum
if (isset($_POST["submit"])) {
//cek apakah data berhasil di ubah atau tidak
if (ubah($_POST) > 0) {
echo "
<script>
alert('data berhasil diubah');
document.location.href = 'index.php';
</script>
";
} else {
echo "
<script>
alert('data gagal diubah');
document.location.href = 'ubah.php';
</script>
";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ubah Data Mahasiswa</title>
</head>
<body>
<h1>Ubah Data Mahasiswa</h1>
<form action="" method="POST">
<input type="hidden" name="id" value="<?= $mhs["id"] ?>">
<ul>
<li>
<label for="nama"> NAMA : </label>
<input type="text" name="nama" id="nama" required value="<?= $mhs["nama"] ?>">
</li>
<li>
<label for="npm"> NPM : </label>
<input type="text" name="npm" id="npm" required value="<?= $mhs["npm"] ?>">
</li>
<li>
<label for="jurusan"> JURUSAN : </label>
<input type="text" name="jurusan" id="jurusan" required value="<?= $mhs["jurusan"] ?>">
</li>
<li>
<label for="email"> EMAIL : </label>
<input type="text" name="email" id="email" required value="<?= $mhs["email"] ?>">
</li>
<li>
<label for="gambar"> PHOTO : </label>
<input type="text" name="gambar" id="gambar" required value="<?= $mhs["gambar"] ?>">
</li>
<li>
<button type="submit" name="submit">Ubah Data</button>
</li>
</ul>
</form>
</body>
</html>

Lengkapi halaman function.php seperti dibwah ini
<?php
//koneksi database
$db = mysqli_connect("localhost", "root", "", "belajarphp");
//fungsi untuk menampilkan query
function query($query)
{
global $db;
$result = mysqli_query($db, $query);
$rows = [];
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}
function tambah($data)
{
global $db;
$nama = htmlspecialchars($data["nama"]);
$npm = htmlspecialchars($data["npm"]);
$jurusan = htmlspecialchars($data["jurusan"]);
$email = htmlspecialchars($data["email"]);
$gambar = htmlspecialchars($data["gambar"]);
$query = "INSERT INTO mahasiswa VALUES
('', '$nama', '$npm', '$jurusan', '$email', '$gambar')";
mysqli_query($db, $query);
return mysqli_affected_rows($db);
}
function hapus($id)
{
global $db;
mysqli_query($db, "DELETE FROM mahasiswa WHERE id = $id");
return mysqli_affected_rows($db);
}
function ubah($data)
{
global $db;
$id = $data["id"];
$nama = htmlspecialchars($data["nama"]);
$npm = htmlspecialchars($data["npm"]);
$jurusan = htmlspecialchars($data["jurusan"]);
$email = htmlspecialchars($data["email"]);
$gambar = htmlspecialchars($data["gambar"]);
$query = "UPDATE mahasiswa SET
nama = '$nama',
npm = '$npm',
jurusan = '$jurusan',
email = '$email',
gambar = '$gambar'
WHERE id = $id
";
mysqli_query($db, $query);
return mysqli_affected_rows($db);
}