In questo progetto PHP , stiamo andando a creare un'applicazione sondaggio.
Il sondaggio di opinione sarà composto da 3 componenti principali;
Front controller : questa è la pagina dell'indice che determinerà il codice HTML da caricare. Ciò garantirà che la nostra applicazione abbia un unico punto di ingresso. Questo ci darà un maggiore controllo sull'applicazione.
Logica aziendale : conterrà il codice PHP per interagire con il database. Questo ci consentirà di separare la logica aziendale dalla presentazione rendendo la nostra applicazione facile da mantenere
Visualizzazioni : conterrà il codice HTML. Avremo due pagine vale a dire;
- opinion.html.php: conterrà il codice HTML con la domanda e le opzioni
- results.html.php - questo conterrà il codice HTML che mostra i risultati del sondaggio di opinione
Presupposti fatti
Il sondaggio di opinione porrà la domanda:
Qual è la tua libreria JavaScript preferita?
Le risposte sarebbero
- JQuery
- MooTools
- Libreria YUI
- Bagliore
Ecco i passaggi per creare l'applicazione:
Passaggio 1) Connettività al database
Questa sezione presuppone la conoscenza di MySQL e di come amministrarlo, se non hai familiarità con questi MySQL, controlla la nostra sezione dei tutorial SQL.
La nostra applicazione avrà una sola tabella con 3 campi vale a dire;
- id: genera automaticamente il numero come chiave primaria
- scelta - il numero che rappresenta un candidato alla presidenza
- ts - il timestamp per il voto
Lo script seguente crea la nostra tabella js_libraries.
Passaggio 2) Codifica della nostra applicazione
Creiamo ora il nostro livello di logica aziendale che gestirà la connettività del database. "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);}}?>
QUI,
- "Public function __construct ()" è il metodo di costruzione della classe utilizzato per stabilire la connessione al database
- "Public function execute_query (...)" è il metodo per eseguire query come inserimento, aggiornamento ed eliminazione
- "Public function select" è il metodo per recuperare i dati dal database e restituire un array numerico.
- "Public function insert (...)" è il metodo di inserimento che chiama il metodo execute_query.
- "Public function __destruct ()" è il distruttore di classe che chiude la connessione al database.
Creiamo ora il front controller 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
QUI,
- "Require 'opinion_poll_model.php';" carica la classe di logica aziendale
- "$ Model = new Opinion_poll_model ();" crea un'istanza della classe di logica aziendale
- "If (count ($ _ POST) == 1) ..." esegue la convalida dei dati e utilizza JavaScript per visualizzare una finestra di messaggio se non è stato votato un candidato.
- "If (count ($ _ POST)> 1) ..." controlla se è stato selezionato un voto contando il numero di elementi nell'array $ _POST. Se non è stato selezionato alcun elemento, $ _POST conterrà solo l'elemento da inviare. Se è stato scelto un candidato, l'array $ _POST conterrà due elementi, l'elemento per l'invio e il voto. Questo codice viene utilizzato anche per inserire un nuovo record di voto e quindi visualizzare la pagina dei risultati
- "Uscita;" viene utilizzato per terminare l'esecuzione dello script dopo che i risultati sono stati visualizzati in modo che il modulo del sondaggio di opinione non venga visualizzato.
- "Require 'opinion.html.php';" visualizza il modulo del sondaggio di opinione se non è stato selezionato nulla.
Creiamo ora le viste. 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:
Passaggio 3) Testare la nostra applicazione
Supponendo che tu abbia salvato i file nella cartella opinionpoll, vai all'URL http: // localhost / opinionpoll /
Se fai clic sul pulsante Ok senza selezionare una libreria JS, apparirà la seguente finestra di messaggio.
Seleziona una libreria JS, quindi fai clic sul pulsante OK. Otterrai la pagina dei risultati simile a quella mostrata di seguito.
Sommario
- Dividendo l'applicazione in logica di business, i livelli di visualizzazione del front controller è una buona pratica di progettazione dell'applicazione
- JavaScript è utile per eseguire la convalida lato client
- È una buona pratica di programmazione utilizzare file.html.php per i file che contengono sia codici HTML che PHP
- L'applicazione del sondaggio d'opinione dimostra come le conoscenze apprese nelle lezioni precedenti possono essere messe insieme per sviluppare un'applicazione funzionante con un database back-end.