Проекты PHP: создание приложения для опроса общественного мнения

Содержание:

Anonim

В этом проекте PHP , мы собираемся создать приложение , опрос общественного мнения.

Опрос общественного мнения будет состоять из 3-х основных компонентов;

Передний контроллер - это индексная страница, которая будет определять загружаемый HTML-код. Это гарантирует, что у нашего приложения будет одна точка входа. Это даст нам больше контроля над приложением.

Бизнес-логика - это будет содержать код PHP для взаимодействия с базой данных. Это позволит нам отделить бизнес-логику от презентации, что упростит сопровождение нашего приложения.

Представления - это будет содержать HTML-код. У нас будет две страницы, а именно;

  • мнение.html.php - это будет содержать HTML-код с вопросом и вариантами
  • results.html.php - он будет содержать HTML-код, отображающий результаты опроса общественного мнения.

Сделанные предположения

Опрос общественного мнения задаст вопрос -

Какая ваша любимая библиотека JavaScript?

Ответы были бы

  • JQuery
  • MooTools
  • Библиотека YUI
  • Светиться

Вот шаги для создания приложения -

Шаг 1) Подключение к базе данных

В этом разделе предполагается, что вы знаете MySQL и способы его администрирования. Если вы не знакомы с этим MySQL, ознакомьтесь с нашим разделом руководств по SQL.

В нашем приложении будет одна таблица только с 3 полями, а именно;

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

Приведенный ниже скрипт создает нашу таблицу js_libraries.

Шаг 2) Кодирование нашего приложения

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

ЗДЕСЬ,

  • «Общедоступная функция __construct ()» - это метод конструктора класса, который используется для установления соединения с базой данных.
  • «Общедоступная функция execute_query (…)» - это метод для выполнения таких запросов, как вставка, обновление и удаление.
  • «Выбор общедоступной функции» - это метод извлечения данных из базы данных и возврата числового массива.
  • «Public function insert (…)» - это метод вставки, который вызывает метод execute_query.
  • «Общедоступная функция __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';?>

ЗДЕСЬ,

  • «Требуется 'мнение_полл_модель.php';» загружает класс бизнес-логики
  • «$ Model = new Opinion_poll_model ();» создает экземпляр класса бизнес-логики
  • «If (count ($ _ POST) == 1)…» выполняет проверку данных и использует JavaScript для отображения окна сообщения, если не был выбран кандидат.
  • «If (count ($ _ POST)> 1)…» проверяет, был ли выбран голос, путем подсчета количества элементов в массиве $ _POST. Если ни один элемент не был выбран, $ _POST будет содержать только элемент отправки. Если кандидат был выбран, массив $ _POST будет состоять из двух элементов: отправки и голосования. Этот код также используется для вставки новой записи голосования и последующего отображения страницы результатов.
  • "выход;" используется для прекращения выполнения скрипта после отображения результатов, чтобы форма опроса не отображалась.
  • «Требуется 'мнение.html.php';» отображает форму опроса, если ничего не было выбрано.

Теперь создадим представления. мнение.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 /viewpoll /

Если вы нажмете кнопку ОК, не выбирая библиотеку JS, вы получите следующее окно сообщения.

Выберите библиотеку JS и нажмите кнопку ОК. Вы получите страницу результатов, аналогичную показанной ниже.

Резюме

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