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 .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
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?
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.