PHP projekti: ustvarite aplikacijo za anketo

Kazalo:

Anonim

V tem projektu PHP , bomo ustvarili aplikacijo javnomnenjsko raziskavo.

Javnomnenjska anketa bo sestavljena iz treh glavnih komponent;

Sprednji krmilnik - to je indeksna stran, ki bo določila kodo HTML, ki jo želite naložiti. To bo zagotovilo, da ima naša aplikacija eno samo vstopno točko. Tako bomo dobili večji nadzor nad aplikacijo.

Poslovna logika - ta bo vsebovala kodo PHP za interakcijo z bazo podatkov. To nam bo omogočilo, da ločimo poslovno logiko od predstavitve, kar olajša vzdrževanje naše aplikacije

Pogledi - ta bo vseboval kodo HTML. Imeli bomo namreč dve strani;

  • opinion.html.php - ta bo vsebovala kodo HTML z vprašanjem in možnostmi
  • results.html.php - ta bo vsebovala kodo HTML, ki prikazuje rezultate ankete

Predpostavke

Anketa bo postavila vprašanje -

Katera je vaša najljubša knjižnica JavaScript?

Odgovori bi bili

  • JQuery
  • MooTools
  • Knjižnica YUI
  • Sijaj

Tu so koraki za ustvarjanje aplikacije -

Korak 1) Povezava z bazo podatkov

Ta razdelek predvideva poznavanje MySQL in kako ga upravljati. Če niste seznanjeni s tem MySQL, preglejte naš razdelek o vajah SQL.

Naša aplikacija bo imela samo eno tabelo s 3 polji, in sicer;

  • id - samodejno ustvari številko kot primarni ključ
  • izbira - številka, ki predstavlja predsedniškega kandidata
  • ts - časovni žig za glasovanje

Spodnji skript ustvari našo tabelo js_libraries.

2. korak) Kodiranje naše aplikacije

Ustvarimo zdaj naš sloj poslovne logike, ki bo urejal povezljivost baze podatkov. '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);}}?>

TUKAJ,

  • “Javna funkcija __construct ()” je metoda konstruktorja razreda, ki se uporablja za vzpostavitev povezave z bazo podatkov
  • »Javna funkcija execute_query (…)« je metoda za izvajanje poizvedb, kot so vstavljanje, posodobitev in brisanje
  • “Public function select” je metoda za pridobivanje podatkov iz baze podatkov in vrnitev številskega polja.
  • »Vložek javne funkcije (…)« je metoda vstavljanja, ki pokliče metodo execute_query.
  • “Javna funkcija __destruct ()” je destruktor razreda, ki zapre povezavo z bazo podatkov.

Ustvarimo zdaj sprednji krmilnik 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';?>

TUKAJ,

  • "Zahtevajo 'opinion_poll_model.php';" naloži razred poslovne logike
  • "$ Model = new Opinion_poll_model ();" ustvari primerek razreda poslovne logike
  • "If (count ($ _ POST) == 1) ..." izvede preverjanje veljavnosti podatkov in uporabi JavaScript za prikaz okna s sporočilom, če ni bil izbran kandidat.
  • »If (count ($ _ POST)> 1) ...« preveri, ali je bil izbran glas s štetjem števila elementov v matriki $ _POST. Če ni bil izbran noben element, bo $ _POST vseboval samo element za oddajo. Če je bil izbran kandidat, bo polje $ _POST sestavljeno iz dveh elementov, elementa oddaje in glasovanja. Ta koda se uporablja tudi za vstavitev novega zapisa glasovanja in nato prikaz strani z rezultati
  • "Izhod;" se uporablja za zaključek izvajanja skripta po prikazu rezultatov, tako da obrazec za anketo ni prikazan.
  • “Zahtevajo 'opinion.html.php';" prikaže obrazec javnomnenjske ankete, če ni bilo izbrano nič.

Ustvarimo zdaj poglede. mnenje.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:

Korak 3) Testiranje naše aplikacije

Ob predpostavki, da ste datoteke shranili v mapo opinionpoll, poiščite URL http: // localhost / opinionpoll /

Če kliknete gumb V redu, ne da bi izbrali knjižnico JS, se prikaže naslednje okno s sporočilom.

Izberite knjižnico JS in kliknite gumb V redu. Dobili boste stran z rezultati, podobno tisti, prikazani spodaj.

Povzetek

  • Razdelitev vaše aplikacije na poslovno logiko, sloji pogleda sprednjega krmilnika je dobra praksa oblikovanja aplikacij
  • JavaScript je uporaben za izvajanje preverjanja na strani odjemalca
  • Dobra praksa programiranja je, da datoteko file.html.php uporabljate za datoteke, ki vsebujejo kode HTML in PHP
  • Aplikacija javnomnenjske ankete prikazuje, kako je mogoče znanje, pridobljeno v prejšnjih lekcijah, združiti za razvoj delujoče aplikacije z bazo podatkov.