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 .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
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?
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.