Proyek PHP: Membuat Aplikasi Jajak Pendapat

Dalam proyek PHP ini, kita akan membuat aplikasi jajak pendapat.

Jajak pendapat akan terdiri dari 3 komponen besar;

Pengontrol depan – ini adalah halaman indeks yang akan menentukan kode HTML yang akan dimuat. Ini akan memastikan bahwa aplikasi kita memiliki satu titik masuk. Ini akan memberi kita kontrol lebih besar terhadap aplikasi.

Logika bisnis – ini akan berisi kode PHP untuk berinteraksi dengan database. Ini akan memungkinkan kita untuk memisahkan logika bisnis dari presentasi sehingga membuat aplikasi kita mudah dipelihara

views – ini akan berisi kode HTML. Kami akan memiliki dua halaman yaitu;

  • opinion.html.php – ini akan berisi kode HTML dengan pertanyaan dan opsi
  • result.html.php – ini akan berisi kode HTML yang menampilkan hasil jajak pendapat

Asumsi dibuat

Jajak pendapat akan menanyakan pertanyaan –

Apa favoritmu JavaNaskah Perpustakaan?

Jawabannya adalah

  • JQuery
  • Mootools
  • Perpustakaan YUI
  • Cahaya

Berikut adalah langkah-langkah untuk membuat aplikasi–

Langkah 1) Konektivitas Basis Data

Bagian ini mengasumsikan pengetahuan tentang MySQL dan bagaimana mengelolanya, jika Anda belum mengetahuinya MySQL, periksa kami tutorial SQL bagian.

Aplikasi kita akan memiliki satu tabel saja dengan 3 field yaitu;

  • id – menghasilkan nomor secara otomatis sebagai kunci utama
  • pilihan – nomor yang mewakili calon presiden
  • ts – stempel waktu pemungutan suara

Skrip di bawah ini membuat tabel js_libraries kami.

<?php
CREATE TABLE `js_libraries` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `choice` tinyint(4) NOT NULL DEFAULT '0',

  `ts` timestamp NULL DEFAULT NULL,

  PRIMARY KEY (`id`)

);
?>

Langkah 2) Mengkodekan aplikasi kita

Sekarang mari buat lapisan logika bisnis yang akan menangani konektivitas database. 'opini_poll_model.php'

<?php

class Opinion_poll_model {

 private $db_handle; private $host = 'localhost'; private $db = 'opinion_poll';private $uid = 'root'; private $pwd = 'melody';

    public function __construct() {

        $this->db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL server

        if (!$this->db_handle) die("Unable to connect to MySQL: " . mysqli_error());

        if (!mysqli_select_db($this->db_handle,$this->db)) die("Unable to select database: " . mysqli_error());

    }

    private function execute_query($sql_stmt) {

        $result = mysqli_query($db_handle,$sql_stmt); //execute SQL statement

        return !$result ? FALSE : TRUE;

    }

    public function select($sql_stmt) {

        $result = mysqli_query($db_handle,$sql_stmt);

        if (!$result) die("Database access failed: " . mysqli_error());

        $rows = mysqli_num_rows($result);

        $data = array();

        if ($rows) {

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

                $data = $row;

            }

        }

        return $data;

    }
    public function insert($sql_stmt) {

        return $this->execute_query($sql_stmt);

    }

    public function __destruct(){

        mysqli_close($this->db_handle);

    }

}

?>

SINI,

  • “fungsi publik __construct()” adalah metode konstruktor kelas yang digunakan untuk membuat koneksi database
  • “fungsi publik eksekusi_query(…)” adalah metode untuk mengeksekusi kueri seperti menyisipkan, memperbarui, dan menghapus
  • "pemilihan fungsi publik" adalah metode untuk mengambil data dari Database dan mengembalikan array numerik.
  • “public function insert(…)” adalah metode penyisipan yang memanggil metode eksekusi_query.
  • “fungsi publik __destruct()” adalah destruktor kelas yang menutup koneksi database.

Sekarang mari kita buat pengontrol depan index.php

<?php

require 'opinion_poll_model.php';

$model = new Opinion_poll_model();

if (count($_POST) == 1) {

    echo "<script>alert('You did not vote!');</script>";

}

if (count($_POST) > 1) {

    $ts = date("Y-m-d H:i:s");

    $option = $_POST['vote'][0];

    $sql_stmt = "INSERT INTO js_libraries (`choice`,`ts`) VALUES ($option,'$ts')";

    $model->insert($sql_stmt);

    $sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries;";

    $choices_count = $model->select($sql_stmt);

    $libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");

    $table_rows = '';

    for ($i = 1; $i < 5; $i++) {

        $sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";

        $result = $model->select($sql_stmt);

        $table_rows .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>";

    }

    require 'results.html.php';

    exit;

}

require 'opinion.html.php';

?>

SINI,

  • “membutuhkan 'opinion_poll_model.php';” memuat kelas logika bisnis
  • “$model = Opini_poll_model();” membuat turunan dari kelas logika bisnis
  • “if (count($_POST) == 1)…” melakukan validasi dan penggunaan data JavaSkrip untuk menampilkan kotak pesan jika belum ada kandidat yang dipilih.
  • “if (count($_POST) > 1)…” memeriksa apakah suara telah dipilih dengan menghitung jumlah item dalam array $_POST. Jika tidak ada item yang dipilih, $_POST hanya akan berisi item yang dikirimkan. Jika seorang kandidat telah terpilih, array $_POST akan memiliki dua elemen, item kirim dan pilih. Kode ini juga digunakan untuk menyisipkan catatan suara baru dan kemudian menampilkan halaman hasilnya
  • “exit;” digunakan untuk mengakhiri eksekusi skrip setelah hasil ditampilkan sehingga formulir jajak pendapat tidak ditampilkan.
  • “membutuhkan 'opini.html.php';” menampilkan formulir jajak pendapat jika tidak ada yang dipilih.

Sekarang mari kita buat tampilannya. opini.html.php

<html>
    <head>
        <title>JavaScript Libraries - Opinion Poll</title>
    </head>
    <body>

        <h2>JavaScript Libraries - Opinion Poll</h2>

        <p><b>What is your favorite JavaScript?</b></p>

        <form method="POST" action="index.php">

            <p> <input type="radio" name="vote" value="1" />JQuery

                <br /><input type="radio" name="vote" value="2" />MooToolsl

                <br /><input type="radio" name="vote" value="3" />YUI Library

                <br /><input type="radio" name="vote" value="4" />Glow

            </p>

            <p><input type="submit" name="submitbutton" value="OK" /></p>

        </form>

    </body>

</html>

hasil.html.php

<html>

    <head>

        <title>JavaScript Libraries Poll Results</title>

    </head>

    <body>

        <h2>Opinion Poll Results</h2>

        <p><b>What is your favorite JavaScript Library?</b></p>

        <p><b><?php echo $choices_count[0]; ?></b> people have thus far taken part in this poll:</p>

        <p>
<table>

            <?php echo($table_rows); ?>
        </table>
</body>
</html>

Langkah 3) Menguji aplikasi kita

Dengan asumsi Anda telah menyimpan file di folder jajak pendapat, telusuri URL http://localhost/opinionpoll/

Menguji Aplikasi Jajak Pendapat

Jika Anda mengklik tombol Ok tanpa memilih pustaka JS, Anda akan mendapatkan kotak pesan berikut.

Menguji Aplikasi Jajak Pendapat

Pilih perpustakaan JS lalu klik tombol OK. Anda akan mendapatkan halaman hasil yang mirip dengan yang ditunjukkan di bawah ini.

Menguji Aplikasi Jajak Pendapat

Kesimpulan

  • Membagi aplikasi Anda ke dalam logika bisnis, lapisan tampilan pengontrol depan adalah praktik desain aplikasi yang baik
  • JavaSkrip berguna untuk melakukan validasi sisi klien
  • Merupakan praktik pemrograman yang baik untuk menggunakan file.html.php untuk file yang berisi HTML dan kode PHP
  • Aplikasi jajak pendapat menunjukkan bagaimana pengetahuan yang dipelajari dalam pelajaran sebelumnya dapat disatukan untuk mengembangkan aplikasi yang berfungsi dengan back end database.