În acest proiect PHP , vom crea o aplicație de sondaj de opinie.
Sondajul de opinie va cuprinde 3 componente majore;
Controler frontal - aceasta este pagina index care va determina codul HTML care trebuie încărcat. Acest lucru va asigura că aplicația noastră are un singur punct de intrare. Acest lucru ne va oferi mai mult control asupra aplicației.
Business Logic - acesta va conține codul PHP pentru interacțiunea cu baza de date. Acest lucru ne va permite să separăm logica de afaceri de prezentare, facilitând întreținerea aplicației noastre
Vizualizări - acesta va conține codul HTML. Vom avea două pagini și anume;
- opinion.html.php - acesta va conține codul HTML cu întrebarea și opțiunile
- results.html.php - acesta va conține codul HTML care afișează rezultatele sondajului de opinie
Ipoteze făcute
Sondajul de opinie va pune întrebarea -
Care este biblioteca dvs. JavaScript preferată?
Răspunsurile ar fi
- JQuery
- MooTools
- Biblioteca YUI
- Strălucire
Iată pașii pentru crearea aplicației -
Pasul 1) Conectivitatea bazei de date
Această secțiune presupune cunoștințe despre MySQL și cum să o administreze, dacă nu sunteți familiarizat cu aceste MySQL, consultați secțiunea tutoriale SQL.
Aplicația noastră va avea un singur tabel cu 3 câmpuri și anume;
- id - generează automat numărul ca cheie principală
- alegere - numărul care reprezintă un candidat la președinție
- ts - marca de timp pentru vot
Scriptul de mai jos creează tabelul nostru js_libraries.
Pasul 2) Codificarea aplicației noastre
Să creăm acum stratul nostru de logică de afaceri care se va ocupa de conectivitatea bazei de date. '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);}}?>
AICI,
- „Funcția publică __construct ()” este metoda constructorului de clase care este utilizată pentru a stabili conexiunea la baza de date
- „Funcție publică execute_query (...)” este metoda pentru executarea interogărilor precum inserarea, actualizarea și ștergerea
- „Selectarea funcției publice” este metoda de recuperare a datelor din baza de date și returnarea unui tablou numeric.
- „Insert funcție publică (...)” este metoda insert care apelează metoda execute_query.
- „Funcția publică __destruct ()” este destructorul de clasă care închide conexiunea la baza de date.
Să creăm acum controlerul frontal 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
AICI,
- „Solicită„ opinion_poll_model.php ”;” încarcă clasa logicii de afaceri
- „$ Model = new Opinion_poll_model ();” creează o instanță a clasei de logică de afaceri
- „If (count ($ _ POST) == 1) ...” efectuează validarea datelor și folosește JavaScript pentru a afișa o casetă de mesaj dacă nu a fost votat candidatul.
- „If (count ($ _ POST)> 1) ...” verifică dacă a fost selectat un vot prin numărarea numărului de articole din matricea $ _POST. Dacă nu a fost selectat niciun articol, $ _POST va conține doar articolul de trimitere. Dacă a fost ales un candidat, matricea $ _POST va avea două elemente, articolul de depunere și vot. Acest cod este, de asemenea, utilizat pentru a insera o nouă înregistrare a votului și apoi pentru a afișa pagina cu rezultatele
- "Ieșire;" este folosit pentru a termina executarea scriptului după ce rezultatele au fost afișate, astfel încât formularul de sondaj de opinie să nu fie afișat.
- „Necesită„ opinion.html.php ”;” afișează formularul sondajului de opinie dacă nu a fost selectat nimic.
Să creăm acum vizualizările. 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:
Pasul 3) Testarea aplicației noastre
Presupunând că ați salvat fișierele în folderul opinionpoll, navigați la adresa URL http: // localhost / opinionpoll /
Dacă faceți clic pe butonul Ok fără a selecta o bibliotecă JS, veți primi următoarea casetă de mesaj.
Selectați o bibliotecă JS, apoi faceți clic pe butonul OK. Veți obține pagina de rezultate similară celei de mai jos.
rezumat
- Împărțirea aplicației în logica de afaceri, straturile de vizualizare a controlerului frontal este o practică bună de proiectare a aplicațiilor
- JavaScript este util pentru efectuarea validării din partea clientului
- Este o bună practică de programare să utilizați file.html.php pentru fișiere care conțin atât coduri HTML, cât și PHP
- Aplicația sondajului de opinie demonstrează modul în care cunoștințele învățate în lecțiile anterioare pot fi reunite pentru a dezvolta o aplicație de lucru cu o bază de date back-end.