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/
Jika Anda mengklik tombol Ok tanpa memilih pustaka JS, Anda akan mendapatkan kotak pesan berikut.
Pilih perpustakaan JS lalu klik tombol OK. Anda akan mendapatkan halaman hasil yang mirip dengan yang ditunjukkan di bawah ini.
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.