MEMBUAT APLIKASI TICKET PESAWAT DENGAN PHP NATIVE DAN MYSQL

 



DATABASE


CODING

1.Functions.php


<?php

// koneksi ke db

$db = mysqli_connect("localhost", "root", "", "tiket_penerbangan");


//untuk menerima query

function query($query)

{

    //untuk menggunakan variabel db yg udah dibuat

    global $db;

    $result = mysqli_query($db, $query);

    $rows = [];

    // mysqli_.._assoc = untuk mengambil satu baris data dalam table

    while ($row = mysqli_fetch_assoc($result)) {

        $rows[] = $row;

    }

    return $rows;

}


function tambah($data)

{

    //buat variabel untuk ambil data dari tiap elemen dalam form

    //htmlspecialchars menghindari user iseng yang ingin menyisipkan coding html dalam input.

    //jika mau simple gausah pakai aja jadi tinggal $data["nama"];

    $nama_maskapai = htmlspecialchars($data["nama_maskapai"]);

    $tanggal_penerbangan = htmlspecialchars($data["tanggal_penerbangan"]);

    $kuota_penerbangan = htmlspecialchars($data["kuota_penerbangan"]);

    $bandara_asal =  htmlspecialchars($data["bandara_asal"]);

    $bandara_tujuan =  htmlspecialchars($data["bandara_tujuan"]);

    $jam_berangkat = htmlspecialchars($data["jam_berangkat"]);

    $jam_tiba =  htmlspecialchars($data["jam_tiba"]);

    $harga_tiket =  htmlspecialchars($data["harga_tiket"]);

    $foto_flight = upload();

    if (!$foto_flight) {

        exit; // Jika upload gagal, hentikan eksekusi script

    }


    //query insert data

    $query = "INSERT INTO flight VALUES

    (NULL, '$bandara_asal', '$bandara_tujuan', '$nama_maskapai', '$tanggal_penerbangan', '$jam_berangkat'

    , '$jam_tiba', '$kuota_penerbangan', '$harga_tiket', '$foto_flight')";


    global $db;

    mysqli_query($db, $query);


    return mysqli_affected_rows($db);

}


function upload()

{

    $namaFile = $_FILES['foto_flight']['name'];

    $ukuranFile = $_FILES['foto_flight']['size'];

    $error = $_FILES['foto_flight']['error'];

    $tmpName = $_FILES['foto_flight']['tmp_name'];


    $ekstensGambarValid = ['jpg', 'jpeg', 'png'];

    $ekstensGambar = explode('.', $namaFile);

    $ekstensGambar = strtolower(end($ekstensGambar));


    if (!in_array($ekstensGambar, $ekstensGambarValid)) {

        echo "<script>

            alert('Yang Anda upload bukan gambar!');

        </script>";

        return false;

    }

    if ($ukuranFile > 1000000) {

        echo "<script>

            alert('Ukuran gambar terlalu besar!');

        </script>";

        return false;

    }


    // Pindahkan file ke direktori yang diinginkan

    $destination = '../img/' . $namaFile;

    if (move_uploaded_file($tmpName, $destination)) {

        return $namaFile; // Kembalikan nama file jika berhasil diupload

    } else {

        echo "<script>

            alert('Gagal mengupload gambar!');

        </script>";

        return false;

    }

}


function hapus($id)

{

    global $db;

    mysqli_query($db, "DELETE FROM flight WHERE flight_id = $id");

    return mysqli_affected_rows($db);

}


function ubah($data)

{



    $id = $data["id"];

    $foto_flight = htmlspecialchars($data["foto_flight"]);

    $nama_maskapai = htmlspecialchars($data["nama_maskapai"]);

    $tanggal_penerbangan = htmlspecialchars($data["tanggal_penerbangan"]);

    $kuota_penerbangan = htmlspecialchars($data["kuota_penerbangan"]);

    $bandara_asal =  htmlspecialchars($data["bandara_asal"]);

    $bandara_tujuan =  htmlspecialchars($data["bandara_tujuan"]);

    $jam_berangkat = htmlspecialchars($data["jam_berangkat"]);

    $jam_tiba =  htmlspecialchars($data["jam_tiba"]);

    $harga_tiket =  htmlspecialchars($data["harga_tiket"]);




    //query insert data

    $query = "UPDATE flight SET 

    foto_flight = '$foto_flight',

    nama_maskapai = '$nama_maskapai', 

    tanggal_penerbangan = '$tanggal_penerbangan', 

    kuota_penerbangan = '$kuota_penerbangan', 

    bandara_asal = '$bandara_asal',

    bandara_tujuan = '$bandara_tujuan',

    jam_berangkat = '$jam_berangkat', 

    jam_tiba = '$jam_tiba', 

    harga_tiket = '$harga_tiket'

    WHERE flight_id = $id

    ";



    global $db;

    mysqli_query($db, $query);


    return mysqli_affected_rows($db);

}



function registrasi($data)

{

    global $db;

    //agar user tidak memasukan karakter slash dan memasukan huruf kecil

    $username = strtolower(stripslashes($data['username']));


    //supaya aman dari sql injection seperti tdk sengaja memasukan kutip mysqli_real_escape_string

    $password = mysqli_real_escape_string($db, $data["password"]);

    $password2 = mysqli_real_escape_string($db, $data["password2"]);


    $email = htmlspecialchars($data['email']);


    // Periksa kesesuaian password

    if ($password !== $password2) {

        echo "<script>

        alert('Konfirmasi password tidak sesuai!');

        </script>";

        return false; // Mengembalikan false jika konfirmasi password tidak sesuai

    }

    // Hash password menggunakan password_hash()

    $hashedPassword = password_hash($password, PASSWORD_DEFAULT);


    // Periksa apakah username sudah ada

    $result = mysqli_query($db, "SELECT username FROM user WHERE username = '$username'");

    if (mysqli_fetch_assoc($result)) {

        echo "<script>

        alert('Username sudah terdaftar!');

        </script>";

        return false; // Mengembalikan false jika username sudah terdaftar

    }


    // Simpan data registrasi ke dalam database

    mysqli_query($db, "INSERT INTO user (username, email, password, role) VALUES ('$username', '$email', '$hashedPassword', 'user')");


    return mysqli_affected_rows($db); // Mengembalikan jumlah baris yang terpengaruh oleh operasi INSERT

}






function getUserIdFromCookie()

{

    if (isset($_COOKIE['user_id'])) {

        return $_COOKIE['user_id'];

    } else {

        return null;

    }

}


// gunakan var_dump untuk memeriksa hasil queri apakah udah sesuai belum

// $mydata = mysqli_fetch_row($result);

// var_dump($mydata);


// untuk cek apakah ada error

// if (!$result){

//     echo mysqli_error($db);

// }



2. Login.php

<?php


require 'functions.php';

include 'mainheader.php';


// cek cookie 

if (isset($_COOKIE['id']) && isset($_COOKIE['key'])) {

    $id = $_COOKIE['id'];

    $key = $_COOKIE['key'];

    // ambil username berdasarkan id

    $result = mysqli_query($db, "SELECT username FROM user WHERE user_id = $id");

    $row = mysqli_fetch_assoc($result);

}


if (isset($_POST["login"])) {

    $username = $_POST["username"];

    $password = $_POST["password"];


    $result = mysqli_query($db, "SELECT * FROM user WHERE username = '$username'");


    if (mysqli_num_rows($result) === 1) {

        // Cek password

        $row = mysqli_fetch_assoc($result);

        if (password_verify($password, $row["password"])) {


            // Set user_id cookie

            setcookie('user_id', $row['user_id'], time() + 3600, '/');


            //cek pakai remeber 

            if (isset($_POST['remember'])) {

                //buat coookie

                setcookie('id', $row['user_id'], time() + 3600, '/');

                setcookie('key', $row['username'], time() + 3600, '/');

            }


            // Periksa role

            if ($row["role"] == "user") {

                header("Location: /Penerbangan/User/index.php");

                exit;

            } elseif ($row["role"] == "admin") {

                header("Location: /Penerbangan/Admin/index.php");

                exit;

            } elseif ($row["role"] == "maskapai") {

                header("Location: /Penerbangan/Maskapai/dashboard.php");

                exit;

            } else {

                echo "Role tidak valid";

            }

        } else {

            echo "<script>alert('Password salah!');</script>";

        }

    } else {

        echo "<script>alert('Username tidak ditemukan!');</script>";

    }

}

?>




<body>

    <br>

    <br>

    <form action="" method="post">

        <div class="container-sm"> 

            <div class="row mb-3">

            <label for="username" class="col-sm-2 col-form-label">Username</label>

            <div class="col-sm-10">

                <input type="text" class="form-control" id="username" name="username" placeholder="username">

            </div>

        </div>

        <div class="row mb-3">

            <label for="password" class="col-sm-2 col-form-label">Password</label>

            <div class="col-sm-10">

                <input type="password" class="form-control" id="password" name="password" placeholder="password">

            </div>

        </div>

        <div class="row mb-3">

            <div class="col-sm-10 offset-sm-2">

                <div class="form-check">

                    <input class="form-check-input" type="checkbox" name="remember" id="remember">

                    <label class="form-check-label" for="checkRemember">Remember me</label>

                </div>

            </div>

        </div>

        <div class="row">

            <div class="col-sm-10 offset-sm-2">

                <button type="submit" name="login" class="btn btn-primary">Sign in</button>

            </div>

        </div>

        </div>

    </form>


    <script src="./Style/js/bootstrap.bundle.min.js"></script>

</body>


3. Registrasi.php


<?php


require 'functions.php';

include 'mainheader.php';


if (isset($_POST["register"])) {


    if (registrasi($_POST) > 0) {

        echo "

        <script>

        alert('registrasi berhasil!');

        document.location.href = 'login.php';

        </script>

        ";

    } else {

        echo mysqli_error($db);

    }

}

?>


<body>

    <br>

    <br>

    <form action="" method="post">

        <div class="container-sm">

            <div class="row mb-3">

                <label for="username" class="col-sm-2 col-form-label">Username</label>

                <div class="col-sm-10">

                    <input type="text" class="form-control" id="username" name="username" placeholder="Username">

                </div>

            </div>

            <div class="row mb-3">

                <label for="email" class="col-sm-2 col-form-label">Email</label>

                <div class="col-sm-10">

                    <input type="text" class="form-control" id="email" name="email" placeholder="Email">

                </div>

            </div>

            <div class="row mb-3">

                <label for="password" class="col-sm-2 col-form-label">Password</label>

                <div class="col-sm-10">

                    <input type="password" class="form-control" id="password" name="password" placeholder="Password">

                </div>

            </div>

            <div class="row mb-3">

                <label for="password2" class="col-sm-2 col-form-label">Konfirmasi Password</label>

                <div class="col-sm-10">

                    <input type="password" class="form-control" id="password2" name="password2" placeholder="Konfirmasi Password">

                </div>

            </div>

            <div class="row">

                <div class="col-sm-10 offset-sm-2">

                    <button type="submit" name="register" class="btn btn-primary">Registrasi</button>

                </div>

            </div>

        </div>

    </form>




    <script src="./Style/js/bootstrap.bundle.min.js"></script>

</body>


</html>

4.Logout.php

<?php

setcookie('id','', time()-3600);

setcookie('key', '', time()-3600);


header("Location: login.php");

exit;

?>

5.Mainheader.php

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Authentication Page</title>

    <link rel="stylesheet" href="./Style/css/bootstrap.min.css">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">

        <div class="container-fluid">

            <a class="navbar-brand" href="#"> NetiTravel

                <img src="./img/somehowlogo.png" alt="Logo" width="40">

            </a>

            <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarCollapse">

                <span class="navbar-toggler-icon"></span>

            </button>

            <div class="collapse navbar-collapse" id="navbarCollapse">

                <div class="navbar-nav ms-auto">

                    <a href="login.php" class="nav-item nav-link">Login</a>

                    <a href="registrasi.php" class="nav-item nav-link">Register</a>

                </div>

            </div>

        </div>

    </nav>

</head>


6.index.php


<?php

require '../functions.php';

include 'userheader.php';

?>



<body>

    <div class="container mt-4">

        <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">


            <?php

            // Mengambil data produk dari tabel flight

            $flight = mysqli_query($db, "SELECT * FROM flight");


            // foreach loop untuk menampilkan data dalam bentuk card

            foreach ($flight as $row) :

            ?>

                <div class="card" style="width: 18rem; margin-bottom: 20px;">

                    <img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap">

                    <div class="card-body">

                        <h5 class="card-title"><?= $row["nama_maskapai"]; ?></h5>

                        <p class="card-text">Tanggal Penerbangan: <?= $row["tanggal_penerbangan"]; ?></p>

                    </div>

                    <ul class="list-group list-group-flush">

                        <li class="list-group-item">Kuota Penerbangan: <?= $row["kuota_penerbangan"]; ?></li>

                        <li class="list-group-item">Bandara Asal: <?= $row["bandara_asal"]; ?></li>

                        <li class="list-group-item">Bandara Tujuan: <?= $row["bandara_tujuan"]; ?></li>

                    </ul>

                    <div class="card-body">

                        <p>Jam Berangkat: <?= $row["jam_berangkat"]; ?></p>

                        <p>Jam Tiba: <?= $row["jam_tiba"]; ?></p>

                        <p>Harga Tiket: <?= $row["harga_tiket"]; ?></p>

                    </div>

                    <a href="Order.php?id=<?= $row['flight_id']; ?>" class="btn btn-danger">Pesan</a>

                </div>

            <?php endforeach; ?>


        </div>

    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>



7.Order.php


<?php

require '../functions.php';

include 'userheader.php';

?>


<?php

// Inisialisasi variabel

$row = [];


// Periksa apakah parameter URL flight_id ada

$flight_id = $_GET['id'] ?? null;


if ($flight_id) {

    // Mendapatkan informasi penerbangan berdasarkan flight_id

    $flight_info = mysqli_query($db, "SELECT * FROM flight WHERE flight_id = $flight_id");


    // Memastikan data penerbangan ditemukan

    $row = mysqli_fetch_assoc($flight_info);


    // Redirect atau tampilkan pesan kesalahan jika tidak ditemukan

    if (!$row) {

        // Handle error, misalnya redirect ke halaman error atau tampilkan pesan

        echo "Oops! Terjadi kesalahan.";

        exit;

    }

} else {

    echo "Oops! Masih error.";

    exit;

}


if (isset($_POST["submit"])) {

    // Mendapatkan user_id dari cookie

    $user_id = getUserIdFromCookie();


    if ($user_id) {

        // Mendapatkan data dari formulir

        $nama = mysqli_real_escape_string($db, $_POST['nama']);

        $email = mysqli_real_escape_string($db, $_POST['email']);

        $no_telpon = mysqli_real_escape_string($db, $_POST['no_telpon']);

        $alamat = mysqli_real_escape_string($db, $_POST['alamat']);

        $kode_pos = mysqli_real_escape_string($db, $_POST['kode_pos']);

        $jumlah_penumpang = mysqli_real_escape_string($db, $_POST['jumlah_penumpang']);


        // Query untuk menyimpan pesanan ke dalam database

        $query = "INSERT INTO `order` (flight_id, user_id, nama, email, no_telpon, alamat, kode_pos, jumlah_penumpang) 

                  VALUES ('$flight_id', '$user_id', '$nama', '$email', '$no_telpon', '$alamat', '$kode_pos', $jumlah_penumpang)";


        // Eksekusi query

        if (mysqli_query($db, $query)) {

            // Ambil kuota penerbangan dari database

            $flight_info = mysqli_query($db, "SELECT kuota_penerbangan FROM flight WHERE flight_id = $flight_id");

            $row = mysqli_fetch_assoc($flight_info);

            $kuota_penerbangan = $row['kuota_penerbangan'];


            // Kurangi kuota penerbangan dengan jumlah penumpang yang dipesan

            $update_kuota = $kuota_penerbangan - intval($jumlah_penumpang);


            if ($update_kuota > 0) {

                // Eksekusi query untuk memperbarui kuota penerbangan

                $query_kuota = "UPDATE flight SET kuota_penerbangan = $update_kuota WHERE flight_id = $flight_id";

                if (mysqli_query($db, $query_kuota)) {

                    // Kuota penerbangan berhasil diperbarui

                    echo "

                    <script>

                        alert('Pesanan berhasil dibuat!');

                        document.location.href = 'pesanan.php';

                    </script>

                    ";

                } else {

                    // Handle kesalahan jika gagal memperbarui kuota penerbangan

                    echo "Gagal memperbarui kuota penerbangan: " . mysqli_error($db);

                }

            } else {

                // Kuota penerbangan habis

                echo "

                <script>

                    alert('Maaf, kuota penerbangan untuk penerbangan ini telah habis. Pesanan dibatalkan.');

                    document.location.href = 'index.php';

                </script>

                ";

            }

        } else {

            // Handle kesalahan jika query pesanan tidak berhasil dieksekusi

            echo "Gagal membuat pesanan: " . mysqli_error($db);

        }

    } else {

        // Handle kesalahan jika user_id tidak tersedia dalam cookie

        echo "User ID tidak ditemukan dalam cookie.";

    }

}


?>



<body>

    <br>

    <div class="container mt-4">

        <!-- Formulir untuk input ke database -->

        <form method="post" action="">

            <input type="hidden" name="flight_id" value="<?= $flight_id; ?>">

            <!-- Menampilkan informasi penerbangan yang diambil otomatis -->

            <div class="row g-3">

                <div class="col-6">

                    <label for="nama_maskapai" class="form-label">Nama Maskapai</label>

                    <input type="text" class="form-control" value="<?= $row['nama_maskapai'] ?? 'N/A'; ?>">

                </div>

                <div class="col-6">

                    <label for="bandara_asal" class="form-label">Bandara Asal</label>

                    <input type="text" class="form-control" value="<?= $row['bandara_asal'] ?? 'N/A'; ?>">

                </div>

                <div class="col-6">

                    <label for="bandara_tujuan" class="form-label">Bandara Tujuan</label>

                    <input type="text" class="form-control" value="<?= $row['bandara_tujuan'] ?? 'N/A'; ?>">

                </div>

                <div class="col-6">

                    <label for="harga" class="form-label">Harga</label>

                    <input type="text" class="form-control" value="<?= $row['harga_tiket'] ?? 'N/A'; ?>">

                </div>

                <div class="col-6">

                    <label for="nama" class="form-label">Nama</label>

                    <input type="text" class="form-control" name="nama" required>

                </div>

                <div class="col-6">

                    <label for="email" class="form-label">Email</label>

                    <input type="email" class="form-control" name="email" required>

                </div>

                <div class="col-6">

                    <label for="no_telpon" class="form-label">No Telepon</label>

                    <input type="text" class="form-control" name="no_telpon" required>

                </div>

                <div class="col-6">

                    <label for="alamat" class="form-label">Alamat</label>

                    <input type="text" class="form-control" name="alamat" required>

                </div>

                <div class="col-6">

                    <label for="kode_pos" class="form-label">Kode Pos</label>

                    <input type="text" class="form-control" name="kode_pos" required>

                </div>

                <div class="col-6">

                    <label for="jumlah_penumpang" class="form-label">Jumlah Penumpang</label>

                    <input type="number" name="jumlah_penumpang" id="jumlah_penumpang" class="form-control" min="0" required>

                </div>

            </div>

            <br>

            <button type="submit" name="submit" class="btn btn-danger">Buat order</button>

        </form>

    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>


8.Pesanan.php


<?php

require '../functions.php';

include 'userheader.php';

?>


<body>

    <div class="container mt-4">

        <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">

            <?php

            // Ambil user_id dari cookie

            $user_id = isset($_COOKIE['user_id']) ? $_COOKIE['user_id'] : null;


            // Periksa apakah user_id tersedia sebelum melanjutkan

            if ($user_id) {

                // Query untuk mengambil data pesanan berdasarkan user_id

                $query = "SELECT * FROM `order` 

                          JOIN flight ON `order`.flight_id = flight.flight_id 

                          WHERE `order`.user_id = $user_id";

                $result = mysqli_query($db, $query);


                // Loop untuk menampilkan data pesanan dan penerbangan dalam bentuk card

                foreach ($result as $row) :

                    $total_harga = $row["jumlah_penumpang"] * $row['harga_tiket'];


            ?>

                    <div class="card" style="width: 18rem; margin-bottom: 20px;">

                        <img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap">

                        <div class="card-body">

                            <h5 class="card-title">Ms/Mr <?= $row["nama"]; ?></h5>

                        </div>

                            <ul class="list-group list-group-flush">

                                <li class="list-group-item">Kode Booking: <?= $row["order_id"]; ?></li>

                                <li class="list-group-item">Tanggal Keberangkatan: <?= $row["tanggal_penerbangan"]; ?></li>

                                <li class="list-group-item">Bandara Asal: <?= $row["bandara_asal"]; ?></li>

                                <li class="list-group-item">Bandara Tujuan: <?= $row["bandara_tujuan"]; ?></li>

                                <li class="list-group-item">Jam Berangkat: <?= $row["jam_berangkat"]; ?></li>

                                <li class="list-group-item">Jam Tiba: <?= $row["jam_tiba"]; ?></li>

                                <li class="list-group-item">Total Harga: <?= $total_harga; ?></li>

                            </ul>

                            <div class="card-body">

                                <p class="card-text text-danger">Status: <?= $row['status']; ?></p>

                            </div>

                        </div>

                <?php endforeach;

            } else {

                // Jika user_id tidak tersedia dalam cookie

                echo "User ID tidak ditemukan dalam cookie.";

            }

                ?>

                    </div>

        </div>

        <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>


</html>


9.UserHeader.php

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>User Page</title>

    <link rel="stylesheet" href="../Style/css/bootstrap.min.css">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">

        <div class="container-fluid">

            <a class="navbar-brand" href="#"> NetiTravel

                <img src="../img/somehowlogo.png" alt="Logo" width="40">

            </a>

            <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarCollapse">

                <span class="navbar-toggler-icon"></span>

            </button>

            <div class="collapse navbar-collapse" id="navbarCollapse">

                <div class="navbar-nav">

                    <a href="index.php" class="nav-item nav-link active">Home</a>

                    <a href="pesanan.php" class="nav-item nav-link">Pesanan</a>

                </div>

                <div class="navbar-nav ms-auto">

                    <a href="../logout.php" class="nav-item nav-link">Logout</a>

                </div>

            </div>

        </div>

    </nav>

</head>


10.Dashboard.php

<?php

require '../functions.php';

include 'maskapaiheader.php';

?>


<body>

    <div class="container mt-4">

        <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">

            <?php

            // Mengambil data pesanan dari tabel order dan data penerbangan dari tabel flight

            $query = "SELECT * FROM `order` 

                      JOIN flight ON `order`.flight_id = flight.flight_id";

            $result = mysqli_query($db, $query);


            // Mengambil total tiket terjual dari tabel order

            $total_tiket_terjual_query = "SELECT SUM(jumlah_penumpang) AS total_penumpang FROM `order`";

            $total_tiket_terjual_result = mysqli_query($db, $total_tiket_terjual_query);

            $total_tiket_terjual_row = mysqli_fetch_assoc($total_tiket_terjual_result);

            $total_tiket_terjual = $total_tiket_terjual_row['total_penumpang'];


            // Loop untuk menampilkan data pesanan dan penerbangan dalam bentuk card

            foreach ($result as $row) :

            ?>

                <div class="card" style="width: 18rem; margin-bottom: 20px;">

                    <img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap">

                    <div class="card-body">

                        <h5 class="card-title">Tiket <?= $row["nama_maskapai"]; ?> Terjual : <?= $total_tiket_terjual; ?></h5>

                    </div>

                </div>

            <?php endforeach; ?>

        </div>

    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>

Penerbangan/Maskapai/konfirmasi.php

<?php

require '../functions.php';

include 'maskapaiheader.php';


// Jika tombol konfirmasi atau cancel diklik

if (isset($_GET['action'])) {

    $action = $_GET['action'];

    $order_id = $_GET['order_id']; // Ambil order_id dari parameter URL


    // Update status sesuai dengan aksi yang dipilih

    if ($action == 'confirm') {

        $status = 'Confirmed';

    } elseif ($action == 'cancel') {

        $status = 'Cancelled';

    }


    // Query untuk update status di database

    $update_query = "UPDATE `order` SET status='$status' WHERE order_id='$order_id'";

    mysqli_query($db, $update_query);

}


?>



<body>

    <div class="container mt-4">

        <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">

            <?php

            // Mengambil data pesanan dari tabel order dan data penerbangan dari tabel flight

            $query = "SELECT * FROM `order` 

                      JOIN flight ON `order`.flight_id = flight.flight_id";

            $result = mysqli_query($db, $query);


            // Loop untuk menampilkan data pesanan dan penerbangan dalam bentuk card

            foreach ($result as $row) :

            ?>

                <div class="card" style="width: 18rem; margin-bottom: 20px;">

                    <img class="card-img-top" src="../img/<?= $row["foto_flight"]; ?>" alt="Card image cap">

                    <div class="card-body">

                        <h5 class="card-title">Ms/Mr <?= $row["nama"]; ?></h5>

                    </div>

                    <ul class="list-group list-group-flush">

                        <li class="list-group-item">Tanggal Keberangkatan: <?= $row["tanggal_penerbangan"]; ?></li>

                        <li class="list-group-item">Bandara Asal: <?= $row["bandara_asal"]; ?></li>

                        <li class="list-group-item">Bandara Tujuan: <?= $row["bandara_tujuan"]; ?></li>

                        <li class="list-group-item">Jam Berangkat: <?= $row["jam_berangkat"]; ?></li>

                        <li class="list-group-item">Jam Tiba: <?= $row["jam_tiba"]; ?></li>

                        <li class="list-group-item text-danger">Status: <?= $row['status']; ?></li>

                    </ul>

                    <div class="card-body">

                        <!-- Tambahkan parameter action dan order_id di URL -->

                        <a href="?action=confirm&order_id=<?= $row['order_id']; ?>" class="btn btn-warning btn-sm">Konfirmasi</a>

                        <a href="?action=cancel&order_id=<?= $row['order_id']; ?>" class="btn btn-warning btn-sm">Cancel</a>

                    </div>

                </div>

            <?php endforeach; ?>

        </div>

    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>


</html>

11.Maskapaiheader.php

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Maskapai Page</title>

    <link rel="stylesheet" href="../Style/css/bootstrap.min.css">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">

        <div class="container-fluid">

            <a class="navbar-brand" href="#"> NetiTravel

                <img src="../img/somehowlogo.png" alt="Logo" width="40">

            </a>

            <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarCollapse">

                <span class="navbar-toggler-icon"></span>

            </button>

            <div class="collapse navbar-collapse" id="navbarCollapse">

                <div class="navbar-nav">

                    <a href="dashboard.php" class="nav-item nav-link active">Dashboard</a>

                    <a href="konfirmasi.php" class="nav-item nav-link">Konfirmasi</a>

                </div>

                <div class="navbar-nav ms-auto">

                    <a href="../logout.php" class="nav-item nav-link">Logout</a>

                </div>

            </div>

        </div>

    </nav>

</head>

12.Adminheader.php

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Admin Page</title>

    <link rel="stylesheet" href="../Style/css/bootstrap.min.css">

    <nav class="navbar navbar-expand-lg navbar-light bg-light">

        <div class="container-fluid">

            <a class="navbar-brand" href="#"> NetiTravel

                <img src="../img/somehowlogo.png" alt="Logo" width="40">

            </a>

            <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarCollapse">

                <span class="navbar-toggler-icon"></span>

            </button>

            <div class="collapse navbar-collapse" id="navbarCollapse">

                <div class="navbar-nav">

                    <a href="index.php" class="nav-item nav-link active">Home</a>

                    <a href="tambah.php" class="nav-item nav-link">Add</a>

                </div>

                <div class="navbar-nav ms-auto">

                    <a href="../logout.php" class="nav-item nav-link">Logout</a>

                </div>

            </div>

        </div>

    </nav>

</head>

13.Hapus.php

<?php

require "../functions.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 dihapus!');

        document.location.href = 'index.php';

        </script>

        ";

}


14.Index.php

<?php


// untuk menghubungkan dengan file lain

require '../functions.php';

include 'adminheader.php';


// mengambil data produk sintaks dituliskan dalam huruf besar nama tabel database huruf kecil

$flight = mysqli_query($db, "SELECT * FROM flight");


?>




<body>

    <div class="container mt-4">

        <a href="tambah.php" class="btn btn-primary">Add +</a>

        <br>

        <!-- border : menambahkan garis -->

        <!-- cellpadding : menambah ruang pada cell/kolom -->

        <!-- cellspacing : agar bordernya hanya satu garis tidak double maka dibuat 0 -->

        <table class="table table-striped">

            <thead>

                <tr>

                    <th class="col-1">No.</th>

                    <th class="col-2">Aksi</th>

                    <th class="col-1">Foto</th>

                    <th class="col-2">Nama Maskapai</th>

                    <th class="col-1">Tanggal Penerbangan</th>

                    <th class="col-1">Kuota Penerbangan</th>

                    <th class="col-1">Bandara Asal</th>

                    <th class="col-1">Bandara Tujuan</th>

                    <th class="col-1">Jam Berangkat</th>

                    <th class="col-1">Jam Tiba</th>

                    <th class="col-2">Harga Tiket</th>

                </tr>

            </thead>

            <tbody>

                <!-- Diganti dengan data aktual -->

                <?php $i = 1; ?>

                <?php foreach ($flight as $row) : ?>

                    <tr>

                        <td><?= $i; ?></td>

                        <td>

                            <a href="ubah.php?id=<?= $row["flight_id"]; ?>" class="btn btn-warning btn-sm">Edit</a>

                            <a href="hapus.php?id=<?= $row["flight_id"]; ?>" class="btn btn-danger btn-sm" onclick=" return confirm('yakin nich?');">hapus</a>

                        </td>

                        <td><img src="../img/<?= $row["foto_flight"]; ?>" width="50"></td>

                        <td><?= $row["nama_maskapai"]; ?></td>

                        <td><?= $row["tanggal_penerbangan"]; ?></td>

                        <td><?= $row["kuota_penerbangan"]; ?></td>

                        <td><?= $row["bandara_asal"]; ?></td>

                        <td><?= $row["bandara_tujuan"]; ?></td>

                        <td><?= $row["jam_berangkat"]; ?></td>

                        <td><?= $row["jam_tiba"]; ?></td>

                        <td><?= $row["harga_tiket"]; ?></td>

                    </tr>

                    <?php $i++; ?>

                <?php endforeach; ?>

            </tbody>

        </table>


    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>


</html>

14.Tambah.php

<?php


require '../functions.php';

include 'adminheader.php';


// untuk cek apakah tombol submit sudah diklik atau belum

// jika $_POST yang namanya-nya submit

if (isset($_POST["submit"])) {


    // cek apakah data berhasil ditambah

    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 = 'index.php';

        </script>

        ";

    }

}

?>



<body>

    <div class="container mt-4">

        <form action="" method="post" enctype="multipart/form-data">

            <div class="row g-3">

                <div class="col-6">

                    <input type="file" name="foto_flight" id="foto_flight" class="form-control" placeholder="Foto Flight" required>

                </div>

                <div class="col-6">

                    <input type="text" name="nama_maskapai" id="nama_maskapai" class="form-control" placeholder="Nama Maskapai" required>

                </div>

                <div class="col-6">

                    <input type="date" name="tanggal_penerbangan" id="tanggal_penerbangan" class="form-control" required>

                </div>

                <div class="col-6">

                    <input type="number" name="kuota_penerbangan" id="kuota_penerbangan" class="form-control" placeholder="Kuota Penerbangan" min="0" required>

                </div>

                <div class="col-6">

                    <input type="text" name="bandara_asal" id="bandara_asal" class="form-control" placeholder="Bandara Asal" required>

                </div>

                <div class="col-6">

                    <input type="text" name="bandara_tujuan" id="bandara_tujuan" class="form-control" placeholder="Bandara Tujuan" required>

                </div>

                <div class="col-6">

                    <input type="time" name="jam_berangkat" id="jam_berangkat" class="form-control" placeholder="Jam Berangkat" required>

                </div>

                <div class="col-6">

                    <input type="time" name="jam_tiba" id="jam_tiba" class="form-control" placeholder="Jam Tiba" required>

                </div>

                <div class="col-6">

                    <input type="number" name="harga_tiket" id="harga_tiket" class="form-control" placeholder="Harga Tiket" min="0" required>

                </div>

                <div class="col-12">

                    <button type="submit" name="submit" class="btn btn-primary      ">Add new data</button>

                </div>

            </div>

        </form>

    </div>


    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>

Penerbangan/Admin/ubah.php

<?php


require '../functions.php';

include 'adminheader.php';


//ambil data di URL

$id = $_GET["id"];


$flight = query("SELECT * FROM flight WHERE flight_id = $id")[0];



// untuk cek apakah tombol submit sudah diklik atau belum

// jika $_POST yang namanya-nya submit

if (isset($_POST["submit"])) {



    // cek apakah data berhasil diubah

    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 = 'index.php';

        </script>

        ";

    }

}

?>



<body>

    <div class="container mt-4">

        <form action="" method="post">

            <input type="hidden" name="id" value="<?= $flight["flight_id"]; ?>">

            <div class="row g-3">

                <div class="col-6">

                    <input type="text" name="foto_flight" id="foto_flight" class="form-control" value="<?= $flight["foto_flight"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="text" name="nama_maskapai" id="nama_maskapai" class="form-control" value="<?= $flight["nama_maskapai"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="date" name="tanggal_penerbangan" id="tanggal_penerbangan" class="form-control" value="<?= $flight["tanggal_penerbangan"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="number" name="kuota_penerbangan" id="kuota_penerbangan" class="form-control" min="0" value="<?= $flight["kuota_penerbangan"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="text" name="bandara_asal" id="bandara_asal" class="form-control" value="<?= $flight["bandara_asal"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="text" name="bandara_tujuan" id="bandara_tujuan" class="form-control" value="<?= $flight["bandara_tujuan"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="time" name="jam_berangkat" id="jam_berangkat" class="form-control" value="<?= $flight["jam_berangkat"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="time" name="jam_tiba" id="jam_tiba" class="form-control" value="<?= $flight["jam_tiba"]; ?>" required>

                </div>

                <div class="col-6">

                    <input type="number" name="harga_tiket" id="harga_tiket" class="form-control" min="0" value="<?= $flight["harga_tiket"]; ?>" required>

                </div>

                <div class="col-12">

                    <button type="submit" name="submit" class="btn btn-primary">Ubah Flight</button>

                </div>

            </div>

        </form>

    </div>

    <script src="../Style/js/bootstrap.bundle.min.js"></script>

</body>



 

Komentar

Postingan populer dari blog ini

Belajar PHP Part 1

form daftar menjadi warga kecamatan ci jengkol