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

Last updated