PHP projekti: Stvorite aplikaciju za ispitivanje javnog mnijenja

Sadržaj:

Anonim

U ovom PHP projekt , mi ćemo stvoriti ankete prijavu.

Anketa će se sastojati od 3 glavne komponente;

Prednji kontroler - ovo je indeksna stranica koja će odrediti HTML kôd koji će se učitati. To će osigurati da naša aplikacija ima jednu ulaznu točku. To će nam dati veću kontrolu nad aplikacijom.

Poslovna logika - sadržavat će PHP kôd za interakciju s bazom podataka. To će nam omogućiti da poslovnu logiku odvojimo od prezentacije, što čini našu aplikaciju jednostavnom za održavanje

Pregledi - ovo će sadržavati HTML kôd. Imat ćemo dvije stranice naime;

  • opinion.html.php - sadržavat će HTML kôd s pitanjem i opcijama
  • results.html.php - sadržavat će HTML kôd koji prikazuje rezultate ankete

Iznesene pretpostavke

Anketa će postaviti pitanje -

Koja je vaša omiljena JavaScript knjižnica?

Odgovori bi bili

  • JQuery
  • MooTools
  • YUI knjižnica
  • Sjaj

Evo koraka za izradu aplikacije -

Korak 1) Povezivanje baze podataka

Ovaj odjeljak pretpostavlja znanje o MySQL-u i kako ga administrirati, ako niste upoznati s tim MySQL-om, pogledajte naš odjeljak za SQL upute.

Naša će aplikacija imati samo jednu tablicu s 3 polja, naime;

  • id - automatski generiraj broj kao primarni ključ
  • izbor - broj koji predstavlja predsjedničkog kandidata
  • ts - vremenska oznaka za glasanje

Skripta u nastavku stvara našu tablicu js_libraries.

Korak 2) Kodiranje naše aplikacije

Stvorimo sada naš sloj poslovne logike koji će se baviti povezivanjem baze podataka. 'mišljenje_poziv_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);}}?>

OVDJE,

  • “Javna funkcija __construct ()” je metoda konstruktora klase koja se koristi za uspostavljanje veze baze podataka
  • “Javna funkcija execute_query (...)” je metoda za izvršavanje upita poput umetanja, ažuriranja i brisanja
  • "Odabir javne funkcije" metoda je za dohvaćanje podataka iz baze podataka i vraćanje numeričkog niza.
  • “Umetak javne funkcije (...)” je metoda umetanja koja poziva metodu execute_query.
  • “Javna funkcija __destruct ()” je destruktor klase koji zatvara vezu baze podataka.

Izradimo sada prednji kontroler 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';?>

OVDJE,

  • “Zahtijeva 'opinion_poll_model.php';" učitava klasu poslovne logike
  • "$ Model = new Opinion_poll_model ();" stvara instancu klase poslovne logike
  • "If (count ($ _ POST) == 1) ..." izvodi provjeru podataka i koristi JavaScript za prikaz okvira s porukom ako nije izabran kandidat.
  • "If (count ($ _ POST)> 1) ..." provjerava je li odabran glas brojanjem broja stavki u polju $ _POST. Ako nije odabrana nijedna stavka, $ _POST sadržavat će samo stavku za slanje. Ako je izabran kandidat, niz $ _POST sastojat će se od dva elementa, stavke za predaju i glasanje. Ovaj se kôd također koristi za umetanje novog zapisa o glasovanju, a zatim prikazivanje stranice s rezultatima
  • "Izlaz;" koristi se za prekid izvršavanja skripte nakon prikaza rezultata tako da se obrazac ankete ne prikaže.
  • "Zahtijeva 'opinion.html.php';" prikazuje obrazac ankete ako ništa nije odabrano.

Stvorimo sada poglede. mišljenje.html.php

JavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript?

JQuery
MooToolsl
YUI Library
Glow

rezultati.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 prijave

Pod pretpostavkom da ste datoteke spremili u mapu opinionpoll, pronađite URL http: // localhost / opinionpoll /

Ako kliknete gumb Ok bez odabira JS biblioteke, dobit ćete sljedeći okvir s porukom.

Odaberite JS knjižnicu, a zatim kliknite gumb U redu. Dobit ćete stranicu rezultata sličnu onoj prikazanoj u nastavku.

Sažetak

  • Podjela vaše aplikacije na poslovnu logiku, slojevi pogleda prednjeg kontrolera dobra je praksa dizajniranja aplikacija
  • JavaScript je koristan za izvršavanje provjere na strani klijenta
  • Dobra je praksa programiranja koristiti file.html.php za datoteke koje sadrže i HTML i PHP kodove
  • Aplikacija za ispitivanje javnog mnijenja pokazuje kako se znanje naučeno u prethodnim lekcijama može spojiti u razvoj radne aplikacije s pozadinom baze podataka.