PHP-projektit: Luo mielipidekyselysovellus

Sisällysluettelo:

Anonim

Tässä PHP projektissa , aiomme luoda mielipidemittauksen sovelluksen.

Mielipidetutkimus koostuu kolmesta pääkomponentista;

Etuohjain - tämä on hakemistosivu, joka määrittää ladattavan HTML-koodin. Tämä varmistaa, että sovelluksessamme on yksi sisääntulopiste. Tämä antaa meille paremman hallinnan sovelluksesta.

Business Logic - tämä sisältää PHP-koodin vuorovaikutukseen tietokannan kanssa. Tämän avulla voimme erottaa liiketoimintalogiikan esityksestä, mikä tekee sovelluksestamme helppoa ylläpitää

Näkymät - tämä sisältää HTML-koodin. Meillä on kaksi sivua, nimittäin;

  • mielipide.html.php - tämä sisältää HTML-koodin sekä kysymyksen ja vaihtoehdot
  • results.html.php - tämä sisältää HTML-koodin, joka näyttää mielipidekyselyn tulokset

Tehdyt oletukset

Mielipidetutkimuksessa kysytään -

Mikä on suosikkisi JavaScript-kirjasto?

Vastauksia olisi

  • JQuery
  • MooTools
  • YUI-kirjasto
  • Hehku

Tässä ovat sovelluksen luomisen vaiheet -

Vaihe 1) Tietokantayhteydet

Tässä osassa oletetaan tieto MySQL: stä ja sen hallinnasta. Jos et ole perehtynyt näihin MySQL: iin, tarkista osa SQL-oppaat.

Sovelluksessamme on vain yksi taulukko, jossa on 3 kenttää, nimittäin;

  • id - luo numero automaattisesti ensisijaiseksi avaimeksi
  • valinta - presidenttikandidaattia edustava numero
  • ts - äänestyksen aikaleima

Alla oleva komentosarja luo js_libraries-taulukon.

Vaihe 2) Sovelluksemme koodaus

Luodaan nyt liiketoimintalogiikkataso, joka hoitaa tietokantayhteydet. 'mielipite_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);}}?>

TÄSSÄ,

  • ”Public function __construct ()” on luokan konstruktorimenetelmä, jota käytetään tietokantayhteyden muodostamiseen
  • ”Public function execute_query (…)” on tapa suorittaa kyselyjä, kuten lisätä, päivittää ja poistaa
  • ”Public function select” on tapa hakea tietoja tietokannasta ja palauttaa numeerinen taulukko.
  • ”Public function insert (…)” on lisäysmenetelmä, joka kutsuu execute_query-menetelmää.
  • ”Public function __destruct ()” on luokan tuhoaja, joka sulkee tietokantayhteyden.

Luodaan nyt etuohjaimen 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';?>

TÄSSÄ,

  • "Vaatia" mielipiteen_kysely_malli.php ";" lataa liiketoimintalogiikan luokan
  • "$ Model = uusi mielipidekysely_malli ();" luo yrityslogiikkaluokan esiintymän
  • ”If (count ($ _ POST) == 1)…” suorittaa tietojen tarkistuksen ja näyttää JavaScriptiä viestiruudun näyttämiseen, ellei ehdokasta ole äänestetty.
  • ”If (count ($ _ POST)> 1)…” tarkistaa, onko ääni valittu, laskemalla $ _POST-taulukon kohteiden määrä. Jos yhtään kohdetta ei ole valittu, $ _POST sisältää vain lähetetyn kohteen. Jos ehdokas on valittu, $ _POST-taulukossa on kaksi elementtiä, lähetys- ja äänestyskohde. Tätä koodia käytetään myös uuden äänitietueen lisäämiseen ja tulossivun näyttämiseen
  • "Exit" käytetään komentosarjan suorituksen lopettamiseen tulosten näyttämisen jälkeen, jotta mielipidekyselylomake ei tule näkyviin.
  • "Vaatia" mielipide.html.php ";" näyttää mielipidekyselylomakkeen, jos mitään ei ole valittu.

Luodaan nyt näkymät. mielipide.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:

Vaihe 3) Testaa sovelluksemme

Jos olet tallentanut tiedostot mielipidekyselykansioon, selaa URL-osoitteeseen http: // localhost / mielipidekysely /

Jos napsautat Ok-painiketta valitsematta JS-kirjastoa, saat seuraavan viestiruudun.

Valitse JS-kirjasto ja napsauta sitten OK-painiketta. Saat tulossivun, joka on samanlainen kuin alla.

Yhteenveto

  • Sovelluksen jakaminen liiketoimintalogiikaksi, etuohjaimen näkymän tasot on hyvä sovellussuunnittelukäytäntö
  • JavaScript on hyödyllinen asiakaspuolen tarkistuksen suorittamiseen
  • On hyvä ohjelmointikäytäntö käyttää tiedostoa.html.php tiedostoille, jotka sisältävät sekä HTML- että PHP-koodeja
  • Mielipidekyselysovellus osoittaa, kuinka edellisissä oppitunnissa opittu tieto voidaan yhdistää toimivan sovelluksen kehittämiseksi tietokannan taustalla.