I denna PHP-projektet , kommer vi att skapa en opinionsundersökning ansökan.
Opinionsundersökningen kommer att bestå av tre huvudkomponenter;
Främre styrenhet - det här är indexsidan som bestämmer HTML-koden som ska laddas. Detta kommer att säkerställa att vår ansökan har en enda ingångspunkt. Detta ger oss mer kontroll över applikationen.
Affärslogik - den här innehåller PHP-koden för interaktion med databasen. Detta gör det möjligt för oss att skilja affärslogiken från presentationen vilket gör vår applikation lätt att underhålla
Visningar - den innehåller HTML-koden. Vi kommer att ha två sidor, nämligen;
- opinion.html.php - den innehåller HTML-koden med frågan och alternativen
- results.html.php - den innehåller HTML-koden som visar opinionsundersökningsresultaten
Antaganden gjorda
Opinionsundersökningen kommer att ställa frågan -
Vad är ditt favorit JavaScript-bibliotek?
Svar skulle vara
- JQuery
- MooTools
- YUI-biblioteket
- Glöd
Här är stegen för att skapa applikationen -
Steg 1) Databasanslutning
Det här avsnittet förutsätter kunskap om MySQL och hur du administrerar det, om du inte känner till dessa MySQL, se avsnittet om SQL-självstudier.
Vår ansökan kommer endast att ha en tabell med tre fält, nämligen
- id - generera automatiskt nummer som primärnyckel
- val - numret som representerar en presidentkandidat
- ts - tidsstämpeln för omröstningen
Skriptet nedan skapar vår js_libraries-tabell.
Steg 2) Kodning av vår ansökan
Låt oss nu skapa vårt affärslogiklager som hanterar databasanslutningen. '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);}}?>
HÄR,
- ”Offentlig funktion __construct ()” är klasskonstruktörmetoden som används för att upprätta databasanslutningen
- “Public function execute_query (…)” är metoden för att utföra frågor som infoga, uppdatera och ta bort
- “Public function select” är metoden för att hämta data från databasen och returnera en numerisk array.
- ”Public function insert (…)” är insättningsmetoden som kallar metoden execute_query.
- ”Public function __destruct ()” är klassdestruktören som stänger databasanslutningen.
Låt oss nu skapa 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
HÄR,
- “Kräver 'opinion_poll_model.php';” laddar affärslogikklassen
- “$ Model = new Opinion_poll_model ();” skapar en instans av affärslogikklassen
- “If (count ($ _ POST) == 1) ...” utför datavalidering och använder JavaScript för att visa en meddelandefält om inte kandidaten har röstat på.
- “If (count ($ _ POST)> 1)…” kontrollerar om en röst har valts genom att räkna antalet objekt i $ _POST-arrayen. Om inget objekt har valts innehåller $ _POST bara det skickade objektet. Om en kandidat har valts kommer $ _POST-matrisen att bestå av två element, skicka och rösta. Den här koden används också för att infoga en ny omröstningspost och sedan visa resultatsidan
- "utgång;" används för att avsluta skriptkörningen efter att resultaten har visats så att opinionsundersökningsformuläret inte visas.
- “Kräver 'opinion.html.php';” visar opinionsundersökningsformuläret om inget har valts.
Låt oss nu skapa vyerna. opinion.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
resultat.html.php
JavaScript Libraries Poll Results Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Steg 3) Testa vår ansökan
Förutsatt att du har sparat filerna i opinionpoll-mappen, bläddra till URL: n http: // localhost / opinionpoll /
Om du klickar på Ok-knappen utan att välja ett JS-bibliotek får du följande meddelandefält.
Välj ett JS-bibliotek och klicka sedan på OK-knappen. Du får resultatsidan som liknar den som visas nedan.
Sammanfattning
- Att dela upp din applikation i affärslogik, främre kontroller av visningsskikt är en bra applikationsdesign
- JavaScript är användbart för att utföra validering på klientsidan
- Det är en bra programmeringspraxis att använda file.html.php för filer som innehåller både HTML- och PHP-koder
- Opinionsundersökningsapplikationen visar hur kunskapen som lärts ut i tidigare lektioner kan sammanställas för att utveckla en arbetsapplikation med en databasbackend.