PHP-projektid: looge arvamusküsitluse rakendus

Lang L: none (table-of-contents):

Anonim

Selles PHP projekti , me ei kavatse luua arvamusküsitlus taotluse.

Arvamusküsitlus koosneb kolmest põhikomponendist;

Eesmine kontroller - see on registrileht, mis määrab laaditava HTML-koodi. See tagab, et meie rakendusel on üks sisenemispunkt. See annab meile rakenduse üle suurema kontrolli.

Äriloogika - see sisaldab PHP-koodi andmebaasiga suhtlemiseks. See võimaldab meil eraldada äriloogika esitlusest, mis muudab meie rakenduse hooldamise lihtsaks

Vaated - see sisaldab HTML-koodi. Meil on kaks lehte, nimelt;

  • arvamus.html.php - see sisaldab HTML-koodi koos küsimuse ja valikutega
  • results.html.php - see sisaldab HTML-koodi, mis kuvab arvamusküsitluse tulemusi

Tehtud eeldused

Arvamusküsitlus esitab küsimuse -

Mis on teie lemmik JavaScripti raamatukogu?

Vastused oleksid

  • JQuery
  • MooTools
  • YUI raamatukogu
  • Kuma

Rakenduse loomiseks toimige järgmiselt.

1. samm) andmebaaside ühenduvus

Selles jaotises eeldatakse teadmisi MySQL-ist ja selle haldamisest. Kui te pole nende MySQL-iga tuttav, vaadake meie jaotist SQL-õpetused.

Meie rakendusel on ainult üks tabel, millel on 3 välja, nimelt;

  • id - numbri automaatne genereerimine peamise võtmena
  • valik - number, mis esindab presidendikandidaati
  • ts - hääletuse ajatempel

Allolev skript loob meie tabeli js_libraries.

2. samm. Meie rakenduse kodeerimine

Loome nüüd oma äriloogika kihi, mis haldab andmebaasi ühenduvust. 'arvamus_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);}}?>

SIIN,

  • “Public function __construct ()” on klassi konstruktori meetod, mida kasutatakse andmebaasi ühenduse loomiseks
  • „Public function execute_query (…)” on meetod selliste päringute täitmiseks nagu sisestamine, värskendamine ja kustutamine
  • „Public function select” on meetod andmebaasist andmete hankimiseks ja numbrilise massiivi tagastamiseks.
  • “Public function insert (…)” on sisestamismeetod, mis kutsub meetodit execute_query.
  • “Public function __destruct ()” on klassi hävitaja, mis sulgeb andmebaasi ühenduse.

Loome nüüd eesmise kontrolleri 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';?>

SIIN,

  • "Nõuda" arvamuse_küsitluse_model.php ";" laadib äriloogikaklassi
  • "$ Model = new Opinion_poll_model ();" loob äriloogikaklassi eksemplari
  • „If (count ($ _ POST) == 1)…” teostab andmete valideerimise ja kasutab JavaScripti abil sõnumikasti kuvamist, kui kandidaadi poolt pole hääletatud.
  • „If (count ($ _ POST)> 1)…” kontrollib massi $ _POST üksuste arvu lugemisel, kas hääl on valitud. Kui ühtegi üksust pole valitud, sisaldab $ _POST ainult esitatavat üksust. Kui valitud on kandidaat, on massiivi $ _POST kahel elemendil - esitamise ja hääletamise element. Seda koodi kasutatakse ka uue hääletusrekordi sisestamiseks ja seejärel tulemuste lehe kuvamiseks
  • "Väljumine" kasutatakse skripti täitmise lõpetamiseks pärast tulemuste kuvamist, nii et arvamusküsitluse vormi ei kuvata.
  • „Nõuda arvamust.html.php”; ” kuvab arvamusküsitluse vormi, kui midagi pole valitud.

Loome nüüd vaated. arvamus.html.php

JavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript?

JQuery
MooToolsl
YUI Library
Glow

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:

3. samm. Meie rakenduse testimine

Eeldades, et olete failid arvamusküsitluste kausta salvestanud, sirvige URL-i http: // localhost / mielipidekontroll /

Kui klõpsate nuppu OK ilma JS-i teeki valimata, kuvatakse järgmine teatekast.

Valige JS-i teek, seejärel klõpsake nuppu OK. Saad tulemuste lehe, mis on sarnane allpool näidatuga.

Kokkuvõte

  • Jagades oma rakenduse äriloogikaks, on juhtpuldi vaate kihid rakenduste kujundamise hea tava
  • JavaScript on kasulik kliendipoolse valideerimise läbiviimiseks
  • Hea programmeerimistava on kasutada faili.html.php failide jaoks, mis sisaldavad nii HTML- kui ka PHP-koode
  • Arvamusküsitluste rakendus näitab, kuidas eelmistes õppetundides õpitud teadmisi saab kokku panna, et töötada välja toimiv rakendus koos andmebaasi taustaga.