V rámci tohoto projektu PHP , budeme vytvářet žádost o průzkum veřejného mínění.
Průzkum veřejného mínění se bude skládat ze 3 hlavních složek;
Přední řadič - toto je indexová stránka, která určí HTML kód, který se má načíst. Tím zajistíte, aby naše aplikace měla jediný vstupní bod. To nám dá větší kontrolu nad aplikací.
Business Logic - bude obsahovat kód PHP pro interakci s databází. To nám umožní oddělit obchodní logiku od prezentace, což usnadní údržbu naší aplikace
Pohledy - toto bude obsahovat HTML kód. Budeme mít dvě stránky, jmenovitě;
- Opinion.html.php - bude obsahovat HTML kód s otázkou a možnostmi
- results.html.php - bude obsahovat HTML kód, který zobrazí výsledky průzkumu veřejného mínění
Předpoklady
Průzkum veřejného mínění položí otázku -
Jaká je vaše oblíbená knihovna JavaScript?
Odpovědi by byly
- JQuery
- MooTools
- Knihovna YUI
- Záře
Tady jsou kroky k vytvoření aplikace -
Krok 1) Připojení k databázi
Tato část předpokládá znalost MySQL a způsob, jak jej spravovat, pokud nejste obeznámeni s těmito MySQL, podívejte se na naši sekci SQL tutoriálů.
Naše aplikace bude mít pouze jednu tabulku se 3 poli, konkrétně;
- id - automaticky generovat číslo jako primární klíč
- volba - číslo představující kandidáta na prezidenta
- ts - časová značka pro hlasování
Níže uvedený skript vytvoří naši tabulku js_libraries.
Krok 2) Kódování naší aplikace
Pojďme nyní vytvořit naši vrstvu obchodní logiky, která bude zpracovávat připojení k databázi. '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);}}?>
TADY,
- „Public function __construct ()“ je metoda konstruktoru třídy, která se používá k navázání připojení k databázi
- „Public function execute_query (…)“ je metoda pro provádění dotazů, jako je vložení, aktualizace a odstranění
- „Výběr veřejné funkce“ je metoda pro načtení dat z databáze a vrácení číselného pole.
- „Public function insert (...)“ je metoda vložení, která volá metodu execute_query.
- „Public function __destruct ()“ je destruktor třídy, který uzavírá připojení k databázi.
Pojďme nyní vytvořit přední řadič 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
TADY,
- „Require 'Opinion_poll_model.php';“ načte třídu obchodní logiky
- „$ Model = new Opinion_poll_model ();“ vytvoří instanci třídy obchodní logiky
- „If (count ($ _ POST) == 1)…“ provede ověření dat a použije JavaScript k zobrazení okna se zprávou, pokud nebyl zvolen kandidát.
- „If (count ($ _ POST)> 1) ...“ zkontroluje, zda byl zvolen hlas, spočítáním počtu položek v poli $ _POST. Pokud nebyla vybrána žádná položka, $ _POST bude obsahovat pouze odeslanou položku. Pokud byl vybrán kandidát, pole $ _POST bude obsahovat dva prvky, položku Odeslat a Hlasovat. Tento kód se také používá k vložení nového záznamu hlasování a následnému zobrazení stránky s výsledky
- "výstup;" se používá k ukončení provádění skriptu po zobrazení výsledků, aby se nezobrazil formulář průzkumu veřejného mínění.
- „Require 'Opinion.html.php';“ zobrazí formulář průzkumu veřejného mínění, pokud nebylo nic vybráno.
Pojďme nyní vytvořit pohledy. Opinion.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:
Krok 3) Testování naší aplikace
Za předpokladu, že jste uložili soubory do složky Opinpoll, přejděte na adresu URL http: // localhost / OpinionPoll /
Pokud kliknete na tlačítko Ok bez výběru knihovny JS, zobrazí se následující okno se zprávou.
Vyberte knihovnu JS a klikněte na tlačítko OK. Získáte stránku s výsledky podobnou té, která je uvedena níže.
souhrn
- Dobrou praxí při navrhování aplikací je rozdělení aplikace do obchodní logiky
- JavaScript je užitečný pro provádění ověření na straně klienta
- Je dobrým programovacím postupem používat soubor.html.php pro soubory, které obsahují kódy HTML i PHP
- Aplikace pro průzkum veřejného mínění ukazuje, jak lze znalosti získané v předchozích lekcích spojit s vývojem fungující aplikace s koncovým bodem databáze.