Dự án PHP: Tạo ứng dụng thăm dò ý kiến

Mục lục:

Anonim

Trong dự án PHP này , chúng tôi sẽ tạo một ứng dụng thăm dò ý kiến.

Cuộc thăm dò dư luận sẽ bao gồm 3 thành phần chính;

Bộ điều khiển phía trước - đây là trang chỉ mục sẽ xác định mã HTML được tải. Điều này sẽ đảm bảo rằng ứng dụng của chúng tôi có một điểm vào duy nhất. Điều này sẽ cung cấp cho chúng tôi nhiều quyền kiểm soát hơn đối với ứng dụng.

Business Logic - phần này sẽ chứa mã PHP để tương tác với cơ sở dữ liệu. Điều này sẽ cho phép chúng tôi tách logic nghiệp vụ khỏi bản trình bày, giúp ứng dụng của chúng tôi dễ bảo trì

Chế độ xem - phần này sẽ chứa mã HTML. Chúng tôi sẽ có hai trang cụ thể là;

  • ý kiến.html.php - phần này sẽ chứa mã HTML với câu hỏi và các tùy chọn
  • results.html.php - phần này sẽ chứa mã HTML hiển thị kết quả thăm dò ý kiến

Các giả định được thực hiện

Cuộc thăm dò ý kiến ​​sẽ đặt ra câu hỏi -

Thư viện JavaScript yêu thích của bạn là gì?

Câu trả lời sẽ là

  • JQuery
  • MooTools
  • Thư viện YUI
  • Phát sáng

Dưới đây là các bước để tạo ứng dụng -

Bước 1) Kết nối cơ sở dữ liệu

Phần này giả định kiến ​​thức về MySQL và cách quản trị nó, nếu bạn chưa quen với các MySQL này, hãy xem phần hướng dẫn SQL của chúng tôi.

Ứng dụng của chúng tôi sẽ chỉ có một bảng với 3 trường cụ thể là;

  • id - số tự động tạo làm khóa chính
  • sự lựa chọn - số đại diện cho một ứng cử viên tổng thống
  • ts - dấu thời gian cho phiếu bầu

Tập lệnh dưới đây tạo bảng js_libraries của chúng tôi.

Bước 2) Mã hóa ứng dụng của chúng tôi

Bây giờ chúng ta hãy tạo lớp logic nghiệp vụ của chúng ta sẽ xử lý kết nối cơ sở dữ liệu. 'idea_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);}}?>

ĐÂY,

  • “Public function __construct ()” là phương thức khởi tạo lớp được sử dụng để thiết lập kết nối cơ sở dữ liệu
  • “Public function execute_query (…)” là phương thức thực thi các truy vấn như chèn, cập nhật và xóa
  • “Public function select” là phương thức lấy dữ liệu từ cơ sở dữ liệu và trả về một mảng số.
  • “Public function insert (…)” là phương thức insert gọi phương thức execute_query.
  • “Public function __destruct ()” là hàm hủy lớp đóng kết nối cơ sở dữ liệu.

Bây giờ hãy tạo bộ điều khiển phía trước 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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}require 'results.html.php';exit;}require 'opinion.html.php';?>

ĐÂY,

  • “Request 'idea_poll_model.php';" tải lớp logic nghiệp vụ
  • “$ Model = new Opinion_poll_model ();” tạo một thể hiện của lớp logic nghiệp vụ
  • “If (count ($ _ POST) == 1)…” thực hiện xác thực dữ liệu và sử dụng JavaScript để hiển thị hộp thông báo nếu không phải ứng cử viên đã được bình chọn.
  • “If (count ($ _ POST)> 1)…” kiểm tra xem một phiếu bầu đã được chọn hay chưa bằng cách đếm số mục trong mảng $ _POST. Nếu không có mục nào được chọn, $ _POST sẽ chỉ chứa mục gửi. Nếu một ứng cử viên đã được chọn, mảng $ _POST sẽ có hai phần tử, mục gửi và bỏ phiếu. Mã này cũng được sử dụng để chèn một bản ghi phiếu bầu mới và sau đó hiển thị trang kết quả
  • "lối ra;" được sử dụng để chấm dứt thực thi tập lệnh sau khi kết quả đã được hiển thị để biểu mẫu thăm dò ý kiến ​​không được hiển thị.
  • "Request 'ý kiến.html.php';" hiển thị biểu mẫu thăm dò ý kiến ​​nếu không có gì được chọn.

Bây giờ chúng ta hãy tạo các khung nhìn. ý kiến.html.php

JavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript?

JQuery
MooToolsl
YUI Library
Glow

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:

Bước 3) Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu các tệp trong thư mục thăm dò ý kiến, hãy duyệt đến URL http: // localhost / ideapoll /

Nếu bạn nhấp vào nút Ok mà không chọn thư viện JS, bạn sẽ nhận được hộp thông báo sau.

Chọn một thư viện JS sau đó nhấp vào nút OK. Bạn sẽ nhận được trang kết quả tương tự như hình bên dưới.

Tóm lược

  • Chia ứng dụng của bạn thành logic nghiệp vụ, các lớp xem bộ điều khiển phía trước là một phương pháp thiết kế ứng dụng tốt
  • JavaScript hữu ích để thực hiện xác thực phía máy khách
  • Thực hành lập trình tốt là sử dụng file.html.php cho các tệp chứa cả mã HTML và PHP
  • Ứng dụng thăm dò ý kiến ​​cho thấy kiến ​​thức đã học trong các bài học trước có thể được kết hợp với nhau như thế nào để phát triển một ứng dụng hoạt động với cơ sở dữ liệu phía sau.