Dalam proyek PHP ini , kita akan membuat aplikasi polling opini.
Jajak pendapat akan terdiri dari 3 komponen utama;
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 kami kontrol lebih besar atas aplikasi tersebut.
Business Logic - ini akan berisi kode PHP untuk berinteraksi dengan database. Ini akan memungkinkan kami untuk memisahkan logika bisnis dari presentasi sehingga aplikasi kami mudah dipelihara
Tampilan - ini akan berisi kode HTML. Kami akan memiliki dua halaman yaitu;
- opini.html.php - ini akan berisi kode HTML dengan pertanyaan dan opsi
- results.html.php - ini akan berisi kode HTML yang menampilkan hasil jajak pendapat
Asumsi dibuat
Jajak pendapat akan menanyakan pertanyaan -
Apa Perpustakaan JavaScript favorit Anda?
Jawabannya pasti
- JQuery
- MooTools
- Perpustakaan YUI
- Cahaya
Berikut langkah-langkah untuk membuat aplikasi -
Langkah 1) Konektivitas Basis Data
Bagian ini mengasumsikan pengetahuan tentang MySQL dan cara mengelolanya, jika Anda tidak terbiasa dengan MySQL ini, lihat bagian tutorial SQL kami.
Aplikasi kita hanya akan memiliki satu tabel dengan 3 field yaitu;
- id - nomor yang dihasilkan secara otomatis sebagai kunci utama
- pilihan - nomor yang mewakili calon presiden
- ts - stempel waktu untuk pemungutan suara
Skrip di bawah ini membuat tabel js_libraries kami.
Langkah 2) Coding aplikasi kita
Sekarang mari buat layer logika bisnis kita yang akan menangani konektivitas database. 'opinion_poll_model.php'
db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL serverif (!$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 statementreturn !$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,
- "Public function __construct ()" adalah metode konstruktor kelas yang digunakan untuk membuat koneksi database
- “Public function execution_query (…)” adalah metode untuk mengeksekusi kueri seperti menyisipkan, memperbarui, dan menghapus
- "Pemilihan fungsi publik" adalah metode untuk mengambil data dari database dan mengembalikan larik numerik.
- “Public function insert (…)” adalah metode insert yang memanggil metode execute_query.
- "Public function __destruct ()" adalah destruktor kelas yang menutup koneksi database.
Sekarang mari buat front controller index.php
alert('You did not vote!');";}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 .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
SINI,
- “Membutuhkan 'opinion_poll_model.php';” memuat kelas logika bisnis
- “$ Model = new Opinion_poll_model ();” membuat instance dari kelas logika bisnis
- “If (count ($ _ POST) == 1)…” melakukan validasi data dan menggunakan JavaScript untuk menampilkan kotak pesan jika tidak ada kandidat yang dipilih.
- “If (count ($ _ POST)> 1)…” memeriksa apakah voting telah dipilih dengan menghitung jumlah item dalam array $ _POST. Jika tidak ada item yang dipilih, $ _POST hanya akan berisi item pengiriman. Jika seorang kandidat telah dipilih, array $ _POST akan terdiri dari dua elemen, item submit dan vote. Kode ini juga digunakan untuk memasukkan catatan suara baru dan kemudian menampilkan halaman hasil
- "keluar;" digunakan untuk menghentikan eksekusi skrip setelah hasilnya ditampilkan sehingga formulir jajak pendapat tidak ditampilkan.
- “Membutuhkan 'opinion.html.php';” menampilkan formulir jajak pendapat jika tidak ada yang dipilih.
Sekarang mari buat tampilan. opini.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
results.html.php
JavaScript Libraries Poll Results Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Langkah 3) Menguji aplikasi kita
Dengan asumsi Anda telah menyimpan file di folder opinipoll, telusuri ke URL http: // localhost / opinionpoll /
Jika Anda mengklik tombol Ok tanpa memilih perpustakaan 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.
Ringkasan
- Membagi aplikasi Anda ke dalam logika bisnis, lapisan tampilan pengontrol depan adalah praktik desain aplikasi yang baik
- JavaScript berguna untuk melakukan validasi sisi klien
- Merupakan praktik pemrograman yang baik untuk menggunakan file.html.php untuk file yang berisi kode HTML dan PHP
- Aplikasi jajak pendapat mendemonstrasikan bagaimana pengetahuan yang diperoleh dalam pelajaran sebelumnya dapat disatukan untuk mengembangkan aplikasi yang berfungsi dengan database back end.