В този проект 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);}}?>
ТУК,
- „Публична функция __construct ()“ е методът на конструктор на клас, който се използва за установяване на връзка с базата данни
- „Публична функция execute_query (...)“ е методът за изпълнение на заявки като вмъкване, актуализиране и изтриване
- “Public function select” е методът за извличане на данни от базата данни и връщане на числов масив.
- „Вмъкване на публична функция (...)“ е методът на вмъкване, който извиква метода 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
ТУК,
- „Изискват„ 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?
резултати.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 кодове
- Приложението за социологическо проучване показва как знанията, научени в предишните уроци, могат да бъдат обединени, за да се разработи работещо приложение с база данни.