PHP-projekt: Skapa en opinionsundersökningsapplikation

Innehållsförteckning:

Anonim

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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}require 'results.html.php';exit;}require 'opinion.html.php';?>

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?

JQuery
MooToolsl
YUI Library
Glow

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.