В этом проекте 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 .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
ЗДЕСЬ,
- «Требуется 'мнение_полл_модель.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?
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.
- Приложение для опроса общественного мнения демонстрирует, как знания, полученные на предыдущих уроках, могут быть использованы для разработки рабочего приложения с серверной частью базы данных.