Projekty PHP: Vytvoření aplikace veřejného mínění

Obsah:

Anonim

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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}require 'results.html.php';exit;}require 'opinion.html.php';?>

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?

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) 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.