Dalam projek PHP ini , kami akan membuat aplikasi tinjauan pendapat.
Tinjauan pendapat akan terdiri daripada 3 komponen utama;
Pengawal depan - ini adalah halaman indeks yang akan menentukan kod HTML yang akan dimuat. Ini akan memastikan bahawa aplikasi kita mempunyai satu titik masuk. Ini akan memberi kita lebih banyak kawalan terhadap aplikasi tersebut.
Logik Perniagaan - ini akan mengandungi kod PHP untuk berinteraksi dengan pangkalan data. Ini akan membolehkan kita memisahkan logik perniagaan dari pembentangan menjadikan aplikasi kita mudah dijaga
Paparan - ini akan mengandungi kod HTML. Kami akan mempunyai dua halaman iaitu;
- pendapat.html.php - ini akan mengandungi kod HTML dengan soalan dan pilihan
- results.html.php - ini akan mengandungi kod HTML yang memaparkan hasil tinjauan pendapat
Andaian dibuat
Tinjauan pendapat akan mengemukakan soalan -
Apakah Perpustakaan JavaScript kegemaran anda?
Jawapannya pasti
- JQuery
- MooTools
- Perpustakaan YUI
- Bersinar
Berikut adalah langkah-langkah untuk membuat aplikasi -
Langkah 1) Kesambungan Pangkalan Data
Bahagian ini mengandaikan pengetahuan tentang MySQL dan cara mentadbirnya, jika anda tidak biasa dengan MySQL ini, periksa bahagian tutorial SQL kami.
Aplikasi kami akan mempunyai satu jadual hanya dengan 3 bidang iaitu;
- id - menghasilkan nombor secara automatik sebagai kunci utama
- pilihan - nombor yang mewakili calon presiden
- ts - cap waktu untuk mengundi
Skrip di bawah membuat jadual js_libraries kami.
Langkah 2) Pengekodan aplikasi kami
Sekarang mari kita buat lapisan logik perniagaan kita yang akan menangani penyambungan pangkalan data. 'pendapat_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);}}?>
DI SINI,
- "Fungsi awam __construct ()" adalah kaedah pembina kelas yang digunakan untuk mewujudkan sambungan pangkalan data
- "Public function execute_query (...)" adalah kaedah untuk melaksanakan pertanyaan seperti memasukkan, mengemas kini dan menghapus
- "Fungsi publik pilih" adalah metode untuk mengambil data dari pangkalan data dan mengembalikan array angka.
- “Public function insert (…)” adalah kaedah sisipan yang memanggil kaedah execute_query.
- "Fungsi awam __destruct ()" adalah pemusnah kelas yang menutup sambungan pangkalan data.
Mari sekarang buat index.php pengawal depan
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
DI SINI,
- "Memerlukan 'pendapat_poll_model.php';" memuatkan kelas logik perniagaan
- "$ Model = Opini_poll_model baru ();" mencipta contoh kelas logik perniagaan
- "If (count ($ _ POST) == 1) ..." melakukan pengesahan data dan menggunakan JavaScript untuk memaparkan kotak pesan jika bukan calon telah dipilih.
- "If (hitung ($ _ POST)> 1) ..." memeriksa apakah suara telah dipilih dengan menghitung jumlah item dalam array $ _POST. Sekiranya tidak ada item yang dipilih, $ _POST hanya akan mengandungi item hantar. Sekiranya calon telah dipilih, susunan $ _POST akan terdiri daripada dua elemen, iaitu item hantar dan undi. Kod ini juga digunakan untuk memasukkan catatan suara baru dan kemudian memaparkan halaman hasil
- "Keluar;" digunakan untuk menghentikan pelaksanaan skrip setelah hasilnya dipaparkan sehingga bentuk tinjauan pendapat tidak ditampilkan.
- "Memerlukan 'pendapat.html.php';" memaparkan borang tinjauan pendapat sekiranya tidak ada yang dipilih.
Mari sekarang buat pandangan. pendapat.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
hasil.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 kami
Dengan andaian anda telah menyimpan fail-fail tersebut di folder pollpolling, layari URL http: // localhost / opinipoll
Sekiranya anda mengklik butang Ok tanpa memilih perpustakaan JS, anda akan mendapat kotak mesej berikut.
Pilih perpustakaan JS kemudian klik pada butang OK. Anda akan mendapat halaman hasil yang serupa dengan yang ditunjukkan di bawah.
Ringkasan
- Membahagi aplikasi anda menjadi logik perniagaan, lapisan pandangan pengawal depan adalah amalan reka bentuk aplikasi yang baik
- JavaScript berguna untuk melakukan pengesahan di sisi pelanggan
- Merupakan amalan pengaturcaraan yang baik untuk menggunakan file.html.php untuk fail yang mengandungi kod HTML dan PHP
- Aplikasi tinjauan pendapat menunjukkan bagaimana pengetahuan yang dipelajari dalam pelajaran sebelumnya dapat disatukan untuk mengembangkan aplikasi yang berfungsi dengan pangkalan data.