Projekty PHP: Vytvorenie aplikácie Anketa

Obsah:

Anonim

V rámci tohto projektu PHP , budeme vytvárať žiadosť o prieskum verejnej mienky.

Prieskum verejnej mienky bude pozostávať z 3 hlavných zložiek;

Predný radič - toto je indexová stránka, ktorá určí HTML kód, ktorý sa má načítať. To zabezpečí, že naša aplikácia bude mať jediný vstupný bod. Získate tak väčšiu kontrolu nad aplikáciou.

Business Logic - bude obsahovať kód PHP pre interakciu s databázou. To nám umožní oddeliť obchodnú logiku od prezentácie, čo umožní ľahkú údržbu našej aplikácie

Zobrazenia - bude obsahovať HTML kód. Budeme mať dve stránky, konkrétne;

  • Opinion.html.php - bude obsahovať HTML kód s otázkou a možnosťami
  • results.html.php - bude obsahovať HTML kód, ktorý zobrazuje výsledky prieskumu verejnej mienky

Vytvorené predpoklady

Prieskum verejnej mienky položí otázku -

Aká je tvoja obľúbená knižnica JavaScript?

Odpovede by boli

  • JQuery
  • MooTools
  • Knižnica YUI
  • Žiara

Tu sú kroky na vytvorenie aplikácie -

Krok 1) Pripojenie k databáze

Táto časť predpokladá znalosti MySQL a spôsobu jeho správy. Ak nie ste oboznámení s týmito MySQL, pozrite si našu sekciu SQL tutoriálov.

Naša aplikácia bude mať jednu tabuľku iba s 3 poľami, konkrétne;

  • id - automaticky generovať číslo ako primárny kľúč
  • výber - číslo predstavujúce kandidáta na prezidenta
  • ts - časová pečiatka hlasovania

Skript nižšie vytvára našu tabuľku js_libraries.

Krok 2) Kódovanie našej aplikácie

Poďme teraz vytvoriť našu vrstvu obchodnej logiky, ktorá bude spracovávať pripojenie k databáze. '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);}}?>

TU,

  • „Public function __construct ()“ je metóda konštruktora triedy, ktorá sa používa na nadviazanie pripojenia k databáze
  • „Verejná funkcia execute_query (...)“ je metóda na vykonávanie dotazov, ako sú vloženie, aktualizácia a odstránenie
  • „Výber verejnej funkcie“ je metóda na získanie údajov z databázy a vrátenie číselného poľa.
  • „Verejná funkcia vložiť (...)“ je metóda vloženia, ktorá volá metódu execute_query.
  • “Public function __destruct ()” je destruktor triedy, ktorý uzatvára pripojenie k databáze.

Vytvorme teraz predný radič 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';?>

TU,

  • “Require 'Opinion_poll_model.php';“ načíta triedu obchodnej logiky
  • „$ Model = new Opinion_poll_model ();“ vytvára inštanciu triedy obchodnej logiky
  • „If (count ($ _ POST) == 1) ...“ vykoná overenie údajov a použije JavaScript na zobrazenie okna so správou, ak nebol zvolený kandidát.
  • „If (count ($ _ POST)> 1) ...“ skontroluje, či bolo vybrané hlasovanie, spočítaním počtu položiek v poli $ _POST. Ak nebola vybratá žiadna položka, $ _POST bude obsahovať iba odoslanú položku. Ak bol vybraný kandidát, pole $ _POST bude obsahovať dva prvky, položku odoslať a hlasovať. Tento kód sa tiež používa na vloženie nového záznamu hlasovania a následné zobrazenie stránky s výsledkami
  • "východ;" sa používa na ukončenie vykonávania skriptu po zobrazení výsledkov tak, aby sa formulár verejnej mienky nezobrazil.
  • „Require 'Opinion.html.php';“ zobrazí formulár hlasovania, ak nebolo nič vybrané.

Poďme teraz vytvoriť pohľady. 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:

Krok 3) Testovanie našej aplikácie

Za predpokladu, že ste súbory uložili do priečinka Opinpoll, prejdite na adresu URL http: // localhost / OpinionPoll /

Ak kliknete na tlačidlo Ok bez výberu knižnice JS, zobrazí sa nasledujúce okno so správou.

Vyberte knižnicu JS a potom kliknite na tlačidlo OK. Zobrazí sa stránka s výsledkami podobná stránke uvedenej nižšie.

Zhrnutie

  • Dobrým postupom pri navrhovaní aplikácií je rozdelenie vašej aplikácie na obchodnú logiku
  • JavaScript je užitočný na vykonávanie validácie na strane klienta
  • Je dobrým programovacím postupom používať súbor.html.php pre súbory, ktoré obsahujú kódy HTML aj PHP
  • Aplikácia prieskumu verejnej mienky demonštruje, ako možno poznatky získané v predchádzajúcich lekciách spojiť pri vývoji fungujúcej aplikácie s koncovým bodom databázy.