Membuat Relasi Many to Many
Create
<?php include __DIR__. './../../includes/config.php'; ?>
<?php include __DIR__. './../../includes/header.php'; ?>
<?php
$query = "SELECT * FROM kategoribuku";
$stmt = $pdo->query($query);
$kategoriBuku = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<div class="card border-radius p-4">
<!-- baris judul dan kembali -->
<div class="row align-item-center">
<div class="col">
<h2>Tambah Data Buku</h2>
</div>
<div class="col text-end">
<a href="/views/data-kategori-buku" class="btn btn-outline-secondary"><i class="fa-solid fa-arrow-right-to-bracket"></i></a>
</div>
</div>
<!-- form -->
<div class="row mt-4">
<div class="col">
<form action="" method="post">
<div class="mb-3">
<label for="inputNamaBuku" class="form-label">Nama Buku</label>
<input type="text" name="book_name" class="form-control" id="inputNamaBuku" placeholder="Masukkan Buku" required>
</div>
<div class="mb-3">
<label for="inputNamaBuku" class="form-label">Kategori Buku</label>
<select name="kategoriBuku" id="" class="form-control">
<option disabled selected>-- Pilih Data Kategori Buku --</option>
<?php foreach ($kategoriBuku as $kategori) : ?>
<option value="<?= $kategori['KategoriID'] ?>"><?= $kategori['NamaKategori'] ?></option>
<? endforeach; ?>
</select>
</div>
<div>
<button type="submit" class="btn btn-primary btn-sm"><i class="fa-solid fa-floppy-disk"></i></button>
<button type="reset" class="btn btn-secondary btn-sm"><i class="fa-solid fa-eraser"></i></button>
</div>
</form>
</div>
</div>
</div>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$pdo->beginTransaction();
date_default_timezone_set('Asia/Jakarta');
$name = $_POST['book_name'];
$kategori_buku = $_POST['kategoriBuku'];
$sql = "INSERT INTO buku (name) VALUES (:name)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->execute();
$book_id = $pdo->lastInsertId();
$stmt_pivot = $pdo->prepare("
INSERT INTO buku_kategori_buku (buku_id, kategori_buku_id) VALUES (:buku_id, :kategori_buku_id)
");
$stmt_pivot->bindParam(':buku_id', $book_id);
$stmt_pivot->bindParam(':kategori_buku_id', $kategori_buku);
$stmt_pivot->execute();
if ($pdo->commit()) {
echo "<script>alert('Data berhasil ditambah!'); window.location.replace('/views/data-buku/index.php');</script>";
} else {
echo "Failed to create user.";
}
}
?>
<?php include __DIR__. './../../includes/footer.php'; ?>List
<?php include __DIR__. './../../includes/config.php'; ?>
<?php include __DIR__. './../../includes/header.php'; ?>
<?php
$query = "
SELECT buku.*, kategoribuku.NamaKategori as kategori_name FROM buku
JOIN buku_kategori_buku ON buku.buku_id = buku_kategori_buku.buku_id
JOIN kategoribuku ON buku_kategori_buku.kategori_buku_id = kategoribuku.KategoriID
";
$stmt = $pdo->query($query);
$datas = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<div class="card border-radius p-4">
<!-- baris judul dan tambah data pengguna -->
<div class="row align-item-center">
<div class="col">
<h2>List Data Kategori</h2>
</div>
<div class="col text-end">
<a href="/views/data-buku/create.php" class="btn btn-outline-primary" > <i class="fa-solid fa-user-plus"></i> Tambah Data Buku</a>
</div>
</div>
<!-- table -->
<div class="row mt-4">
<div class="col">
<table class="table table-border table-striped">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Kategori</th>
<th class="text-center">Aksi</th>
</tr>
</thead>
<tbody>
<!-- start looping foreach -->
<?php foreach ($datas as $key => $data) : ?>
<tr>
<td>
<?= $key + 1 ?>
</td>
<td>
<?= $data['name'] ?>
</td>
<td>
<?= $data['kategori_name'] ?>
</td>
<td class="text-center">
<a href="/views/data-kategori-buku/detail.php?buku_id=<?= $data['buku_id'] ?>" class="btn btn-sm btn-info"><i class="fa-solid fa-eye"></i></a>
<a href="/views/data-kategori-buku/edit.php?buku_id=<?= $data['buku_id'] ?>" class="btn btn-sm btn-warning"><i class="fa-solid fa-pen-to-square"></i></a>
<a href="/views/data-kategori-buku/delete.php?buku_id=<?= $data['buku_id'] ?>" class="btn btn-sm btn-danger"><i class="fa-solid fa-trash-can"></i></a>
</td>
</tr>
<?php endforeach; ?>
<!-- end looping foreach -->
</tbody>
</table>
</div>
</div>
</div>
<?php include __DIR__. './../../includes/footer.php'; ?>Last updated