Проекти PHP: Створіть програму опитування громадської думки

Зміст:

Anonim

У цьому проекті PHP , ми збираємося створити додаток , опитування громадської думки.

Опитування громадської думки складатиметься з 3 основних компонентів;

Фронтальний контролер - це індексна сторінка, яка визначатиме HTML-код, який потрібно завантажити. Це забезпечить наявність у нашої програми єдиної точки входу. Це дасть нам більше контролю над додатком.

Бізнес-логіка - вона міститиме PHP-код для взаємодії з базою даних. Це дозволить нам відокремити бізнес-логіку від презентації, що полегшить обслуговування нашої програми

Перегляди - він міститиме HTML-код. У нас буде дві сторінки, а саме;

  • opinion.html.php - він міститиме HTML-код із запитанням та параметрами
  • results.html.php - він міститиме HTML-код, який відображає результати опитування громадської думки

Висловлені припущення

Соціологічне опитування задасть питання -

Яка ваша улюблена бібліотека JavaScript?

Відповіді були б

  • JQuery
  • MooTools
  • Бібліотека YUI
  • Світіння

Ось кроки для створення програми -

Крок 1) Підключення до бази даних

Цей розділ передбачає знання MySQL та способи його адміністрування. Якщо ви не знайомі з цими MySQL, перегляньте наш розділ підручників з SQL.

У нашому додатку буде лише одна таблиця з 3 полями, а саме;

  • id - автоматично генерувати номер як первинний ключ
  • вибір - номер, що представляє кандидата в президенти
  • ts - позначка часу для голосування

Наведений нижче сценарій створює нашу таблицю js_libraries.

Крок 2) Кодування нашого додатку

Давайте тепер створимо наш рівень бізнес-логіки, який буде обробляти підключення до бази даних. '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);}}?>

ТУТ,

  • “Public function __construct ()” - це метод конструктора класу, який використовується для встановлення підключення до бази даних
  • “Public function execute_query (...)” - це метод для виконання таких запитів, як вставка, оновлення та видалення
  • “Public function select” - це метод отримання даних із бази даних та повернення числового масиву.
  • “Вставка публічної функції (...)” - це метод вставки, який викликає метод execute_query.
  • “Public function __destruct ()” - це деструктор класу, який закриває підключення до бази даних.

Давайте тепер створимо фронт-контролер 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';?>

ТУТ,

  • “Вимагати 'opinion_poll_model.php';" завантажує клас бізнес-логіки
  • “$ Model = new Opinion_poll_model ();” створює екземпляр класу бізнес-логіки
  • “If (count ($ _ POST) == 1) ...” виконує перевірку даних та використовує JavaScript для відображення вікна повідомлення, якщо за кандидата не було проголосовано.
  • “If (count ($ _ POST)> 1) ...“ перевіряє, чи було обрано голос, підраховуючи кількість елементів у масиві $ _POST. Якщо не вибрано жодного елемента, файл $ _POST міститиме лише елемент подання. Якщо обрано кандидата, масив $ _POST складатиме два елементи - елемент подання та голосування. Цей код також використовується для вставки нового запису про голосування, а потім відображення сторінки результатів
  • "вихід;" використовується для завершення виконання сценарію після відображення результатів, щоб форма опитування думки не відображалася.
  • “Вимагати 'opinion.html.php';” відображає форму опитування, якщо нічого не було обрано.

Давайте тепер створимо подання. opinion.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:

Крок 3) Тестування нашої програми

Якщо припустити, що ви зберегли файли в папці огляду, перейдіть за URL-адресою http: // localhost / opinionpoll /

Якщо натиснути кнопку Ok, не вибравши бібліотеку JS, ви отримаєте таке вікно повідомлення.

Виберіть бібліотеку JS, потім натисніть кнопку OK. Ви отримаєте сторінку результатів, подібну до наведеної нижче.

Резюме

  • Поділ вашого додатка на бізнес-логіку, шари подання фронтального контролера є гарною практикою проектування додатків
  • JavaScript корисний для здійснення перевірки на стороні клієнта
  • Хорошою практикою програмування є використання file.html.php для файлів, що містять як HTML, так і PHP-коди
  • Додаток для опитування громадської думки демонструє, як знання, отримані на попередніх уроках, можна об'єднати для розробки працюючого додатка з базою даних.