4. Create - tambah

Cara Menambahkan Data ke Tabel MySQL

Ada dua file yang kita butuhkan untuk menambahkan data ke MySQL.

  1. form-daftar.php halaman untuk form input;
  2. proses-pendaftaran.php skrip untuk memproses data yang diinputkan.

Sebenarnya bisa saja dibuat dalam satu file, tapi biar lebih mudah dipahami…kita buat terpisah saja.

Silahkan buka file form-daftar.php dan isi dengan kode berikut:

<!DOCTYPE html>
<html>
<head>
    <title>Formulir Pendaftaran Siswa Baru | SMK Coding</title>
</head>

<body>
    <header>
        <h3>Formulir Pendaftaran Siswa Baru</h3>
    </header>

    <form action="proses-pendaftaran.php" method="POST">

        <fieldset>

        <p>
            <label for="nama">Nama: </label>
            <input type="text" name="nama" placeholder="nama lengkap" />
        </p>
        <p>
            <label for="alamat">Alamat: </label>
            <textarea name="alamat"></textarea>
        </p>
        <p>
            <label for="jenis_kelamin">Jenis Kelamin: </label>
            <label><input type="radio" name="jenis_kelamin" value="laki-laki"> Laki-laki</label>
            <label><input type="radio" name="jenis_kelamin" value="perempuan"> Perempuan</label>
        </p>
        <p>
            <label for="agama">Agama: </label>
            <select name="agama">
                <option>Islam</option>
                <option>Kristen</option>
                <option>Hindu</option>
                <option>Budha</option>
                <option>Atheis</option>
            </select>
        </p>
        <p>
            <label for="sekolah_asal">Sekolah Asal: </label>
            <input type="text" name="sekolah_asal" placeholder="nama sekolah" />
        </p>
        <p>
            <input type="submit" value="Daftar" name="daftar" />
        </p>

        </fieldset>

    </form>

    </body>
</html>

Perhatikan pada tag pembuka <form>, di sana kita menggunakan atribut action dan method.

<form action="proses-pendaftaran.php" method="POST">
    ...

Atribut action digunakan untuk menentukan skrip mana yang akan memproses data inputan. Sedangkan atribut method untuk menentukan metode pengiriman datanya.

Perhatikan juga pada input-nya, disana ada atribut name. Atribut ini untuk menentukan kunci indeks dari array $_POST dan $_GET.

Form pendaftaran siswa baru

Selanjutnya silPriscilia Priscilia YulianiPriscilia Yuliani isi file proses-pendaftaran.php dengan kode berikut:

<?php

include("config.php");

// cek apakah tombol daftar sudah diklik atau blum?
if(isset($_POST['daftar'])){

    // ambil data dari formulir
    $nama = $_POST['nama'];
    $alamat = $_POST['alamat'];
    $jk = $_POST['jenis_kelamin'];
    $agama = $_POST['agama'];
    $sekolah = $_POST['sekolah_asal'];

    // buat query
    $sql = "INSERT INTO calon_siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal) VALUE ('$nama', '$alamat', '$jk', '$agama', '$sekolah')";
    $query = mysqli_query($db, $sql);

    // apakah query simpan berhasil?
    if( $query ) {
        // kalau berhasil alihkan ke halaman index.php dengan status=sukses
        header('Location: index.php?status=sukses');
    } else {
        // kalau gagal alihkan ke halaman indek.php dengan status=gagal
        header('Location: index.php?status=gagal');
    }


} else {
    die("Akses dilarang...");
}

?>

Pertama kita ambil data yang dikirim dari formulir, semuanya tersimpan pada variabel $_POST. Karena tadi kita menggunakan method POST pada form.

Input data di form pendaftaran

Setelah itu, kita buat query penyimpanan.

Lalu melakukan pengecekan, apakah query-nya berhasil atau gagal.

Untuk menampilkan pesan berhasil dan gagal pada halaman index.php, silahkan tambahkan kode berikut di bawah tag <nav> pada file index.php:

<?php if(isset($_GET['status'])): ?>
    <p>
        <?php
            if($_GET['status'] == 'sukses'){
                echo "Pendaftaran siswa baru berhasil!";
            } else {
                echo "Pendaftaran gagal!";
            }
        ?>
    </p>
<?php endif; ?>

Hasilnya:

Pesan penyimpanan sukses pada index

Sekarang kita sudah punya dua data.

Siswa yang sudah mendaftar