I dette PHP-prosjektet skal vi lage en meningsmåling-applikasjon.
Meningsmålingen vil bestå av 3 hovedkomponenter;
Frontkontroller - dette er indeksiden som bestemmer HTML-koden som skal lastes inn. Dette vil sikre at søknaden vår har ett enkelt inngangspunkt. Dette vil gi oss mer kontroll over applikasjonen.
Forretningslogikk - denne inneholder PHP-koden for samhandling med databasen. Dette vil tillate oss å skille forretningslogikken fra presentasjonen, noe som gjør søknaden vår enkel å vedlikeholde
Visninger - dette vil inneholde HTML-koden. Vi vil ha to sider, nemlig;
- opinion.html.php - dette vil inneholde HTML-koden med spørsmålet og alternativene
- results.html.php - dette inneholder HTML-koden som viser resultatene fra meningsmålingene
Forutsetninger gjort
Meningsmålingen vil stille spørsmålet -
Hva er ditt favoritt JavaScript-bibliotek?
Svarene ville være
- JQuery
- MooTools
- YUI-biblioteket
- Gløde
Her er trinnene for å opprette applikasjonen -
Trinn 1) Databasetilkobling
Denne seksjonen forutsetter kunnskap om MySQL og hvordan du administrerer den. Hvis du ikke er kjent med disse MySQL, kan du sjekke vår seksjonsveiledning.
Søknaden vår vil bare ha ett bord med 3 felt, nemlig;
- id - generer automatisk nummer som primærnøkkel
- valg - tallet som representerer en presidentkandidat
- ts - tidsstempelet for avstemningen
Skriptet nedenfor lager vår js_libraries tabell.
Trinn 2) Koding av applikasjonen
La oss nå lage vårt forretningslogikklag som skal håndtere databasetilkoblingen. '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);}}?>
HER,
- “Public function __construct ()” er klassekonstruktormetoden som brukes til å etablere databaseforbindelsen
- “Public function execute_query (…)” er metoden for å utføre spørringer som å sette inn, oppdatere og slette
- "Velg offentlig funksjon" er metoden for å hente data fra databasen og returnere en numerisk matrise.
- “Public function insert (…)” er innsettingsmetoden som kaller metoden execute_query.
- “Offentlig funksjon __destruct ()” er klassedestruktøren som lukker databasetilkoblingen.
La oss nå opprette den fremre kontrolleren 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
HER,
- “Krever 'opinion_poll_model.php';” laster virksomhetslogikklassen
- “$ Model = new Opinion_poll_model ();” oppretter en forekomst av forretningslogikklassen
- “If (count ($ _ POST) == 1)…” utfører datavalidering og bruker JavaScript for å vise en meldingsboks hvis ikke kandidaten er stemt frem.
- “If (count ($ _ POST)> 1)…” sjekker om en stemme er valgt ved å telle antall elementer i $ _POST-arrayet. Hvis det ikke er valgt noe element, vil $ _POST bare inneholde det sendte elementet. Hvis en kandidat er valgt, vil $ _POST-arrayet ha to elementer, innsendings- og stemmeelementet. Denne koden brukes også til å sette inn en ny stemmeoppføring og deretter vise resultatsiden
- "exit;" brukes til å avslutte utførelsen av skriptet etter at resultatene er vist, slik at meningsmålingens skjema ikke vises.
- “Krever 'opinion.html.php';” viser meningsmålingskjemaet hvis ingenting er valgt.
La oss nå lage visningene. 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:
Trinn 3) Testing av søknaden vår
Forutsatt at du har lagret filene i opinionpoll-mappen, blar du til URL http: // localhost / opinionpoll /
Hvis du klikker på OK-knappen uten å velge et JS-bibliotek, får du følgende meldingsboks.
Velg et JS-bibliotek, og klikk deretter på OK-knappen. Du får resultatsiden som ligner på den som er vist nedenfor.
Sammendrag
- Å dele søknaden din i forretningslogikk, er fremre kontrollvisningslag en god applikasjonsdesignpraksis
- JavaScript er nyttig for å utføre validering på klientsiden
- Det er en god programmeringspraksis å bruke file.html.php for filer som inneholder både HTML- og PHP-koder
- Meningsmålingsapplikasjonen viser hvordan kunnskapen som er lært i de foregående leksjonene kan settes sammen for å utvikle en arbeidsapplikasjon med en database-backend.