Projekty PHP: Utwórz aplikację ankietową

Spisie treści:

Anonim

W tym projekcie PHP , mamy zamiar utworzyć aplikację sondażu.

Badanie opinii publicznej składać się będzie z 3 głównych elementów;

Kontroler frontowy - jest to strona indeksu, która określi kod HTML do załadowania. Zapewni to, że nasza aplikacja będzie miała jeden punkt wejścia. To da nam większą kontrolę nad aplikacją.

Logika biznesowa - będzie zawierała kod PHP do interakcji z bazą danych. Pozwoli nam to oddzielić logikę biznesową od prezentacji, dzięki czemu nasza aplikacja będzie łatwa w utrzymaniu

Widoki - będzie zawierał kod HTML. Będziemy mieć dwie strony, a mianowicie;

  • opinia.html.php - będzie zawierała kod HTML z pytaniem i opcjami
  • results.html.php - będzie zawierała kod HTML, który wyświetla wyniki ankiety

Przyjęte założenia

Badanie opinii zadaje pytanie -

Jaka jest Twoja ulubiona biblioteka JavaScript?

Odpowiedzi byłyby

  • JQuery
  • MooTools
  • Biblioteka YUI
  • Poświata

Oto kroki, aby utworzyć aplikację -

Krok 1) Łączność z bazą danych

Ta sekcja zakłada znajomość MySQL i tego, jak nią zarządzać, jeśli nie znasz tych MySQL, sprawdź naszą sekcję samouczków SQL.

Nasza aplikacja będzie miała tylko jedną tabelę z 3 polami, a mianowicie;

  • id - automatycznie generuje numer jako klucz podstawowy
  • wybór - liczba reprezentująca kandydata na prezydenta
  • ts - sygnatura czasowa głosowania

Poniższy skrypt tworzy naszą tabelę js_libraries.

Krok 2) Zakodowanie naszej aplikacji

Utwórzmy teraz naszą warstwę logiki biznesowej, która będzie obsługiwać łączność z bazą danych. „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);}}?>

TUTAJ,

  • „Funkcja publiczna __construct ()” to metoda konstruktora klasy używana do nawiązywania połączenia z bazą danych
  • „Funkcja publiczna execute_query (…)” to metoda wykonywania zapytań, takich jak wstawianie, aktualizowanie i usuwanie
  • „Wybór funkcji publicznej” to metoda pobierania danych z bazy danych i zwracania tablicy liczbowej.
  • „Funkcja publiczna insert (…)” to metoda insert, która wywołuje metodę execute_query.
  • „Funkcja publiczna __destruct ()” to destruktor klas, który zamyka połączenie z bazą danych.

Stwórzmy teraz front controller 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';?>

TUTAJ,

  • „Require '' opinii_poll_model.php ';” ładuje klasę logiki biznesowej
  • „$ Model = new Opinion_poll_model ();” tworzy instancję klasy logiki biznesowej
  • „If (count ($ _ POST) == 1)…” przeprowadza walidację danych i używa JavaScript do wyświetlenia okna komunikatu, jeśli nie został wybrany kandydat.
  • „If (count ($ _ POST)> 1)…” sprawdza, czy głos został wybrany, zliczając liczbę elementów w tablicy $ _POST. Jeśli żaden element nie został wybrany, $ _POST będzie zawierał tylko przesyłany element. Jeśli kandydat został wybrany, tablica $ _POST będzie zawierać dwa elementy, element przesyłania i głosowania. Ten kod służy również do wstawiania nowego rekordu głosowania, a następnie wyświetlania strony wyników
  • "Wyjście;" służy do przerwania wykonywania skryptu po wyświetleniu wyników, dzięki czemu ankieta nie jest wyświetlana.
  • „Require 'opinii.html.php';” wyświetla formularz ankiety, jeśli nic nie zostało wybrane.

Stwórzmy teraz widoki. opinia.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:

Krok 3) Testowanie naszej aplikacji

Zakładając, że zapisałeś pliki w folderze opinii, przejdź do adresu URL http: // localhost / Opinionpoll /

Jeśli klikniesz przycisk OK bez wybierania biblioteki JS, pojawi się następujące okno komunikatu.

Wybierz bibliotekę JS, a następnie kliknij przycisk OK. Otrzymasz stronę wyników podobną do pokazanej poniżej.

Podsumowanie

  • Dzieląc aplikację na logikę biznesową, warstwy widoku kontrolera frontowego to dobra praktyka projektowania aplikacji
  • JavaScript jest przydatny do przeprowadzania walidacji po stronie klienta
  • Dobrą praktyką programistyczną jest używanie file.html.php w przypadku plików zawierających zarówno kody HTML, jak i PHP
  • Aplikacja do badania opinii publicznej pokazuje, w jaki sposób wiedzę zdobytą podczas poprzednich lekcji można wykorzystać w celu opracowania działającej aplikacji z zapleczem bazy danych.