PHP-Projekte: Erstellen Sie eine Meinungsumfrageanwendung
In diesem PHP-Projekt, Wir werden eine Meinungsumfrageanwendung erstellen.
Die Meinungsumfrage besteht aus drei Hauptkomponenten;
Front-Controller – Dies ist die Indexseite, die den zu ladenden HTML-Code bestimmt. Dadurch wird sichergestellt, dass unsere Anwendung einen einzigen Einstiegspunkt hat. Dadurch erhalten wir mehr Kontrolle über die Anwendung.
Geschäftslogik – Dies enthält den PHP-Code für die Interaktion mit der Datenbank. Dies ermöglicht es uns, die Geschäftslogik von der Präsentation zu trennen, wodurch unsere Anwendung einfacher zu warten ist
Views – Dies wird den HTML-Code enthalten. Wir werden nämlich zwei Seiten haben;
- meinung.html.php – diese enthält den HTML-Code mit der Frage und den Optionen
- results.html.php – enthält den HTML-Code, der die Ergebnisse der Meinungsumfrage anzeigt
Annahmen getroffen
Die Meinungsumfrage wird die Frage stellen –
Was ist Ihre Lieblings JavaSkript Bibliothek?
Antworten wären
- JQuery
- MooTools
- YUI-Bibliothek
- Glühen
Hier sind die Schritte zum Erstellen der Anwendung:
Schritt 1) Datenbankkonnektivität
In diesem Abschnitt werden Kenntnisse über Folgendes vorausgesetzt MySQL und wie Sie es anwenden, falls Sie damit nicht vertraut sind MySQL, überprüfen Sie unsere SQL-Tutorials .
Unsere Anwendung wird nur eine Tabelle mit 3 Feldern haben, nämlich;
- id – Nummer automatisch als Primärschlüssel generieren
- Wahl – die Zahl, die einen Präsidentschaftskandidaten repräsentiert
- ts – der Zeitstempel für die Abstimmung
Das folgende Skript erstellt unsere js_libraries-Tabelle.
<?php CREATE TABLE `js_libraries` ( `id` int(11) NOT NULL AUTO_INCREMENT, `choice` tinyint(4) NOT NULL DEFAULT '0', `ts` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ); ?>
Schritt 2) Codierung unserer Anwendung
Lassen Sie uns nun unsere Geschäftslogikschicht erstellen, die die Datenbankkonnektivität übernimmt. 'opinion_poll_model.php'
<?php class Opinion_poll_model { private $db_handle; private $host = 'localhost'; private $db = 'opinion_poll';private $uid = 'root'; private $pwd = 'melody'; public function __construct() { $this->db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL server if (!$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 statement return !$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); } } ?>
HIER,
- „public function __construct()“ ist die Klassenkonstruktormethode, die zum Herstellen der Datenbankverbindung verwendet wird
- „public functionexecute_query(…)“ ist die Methode zum Ausführen von Abfragen wie Einfügen, Aktualisieren und Löschen
- „public function select“ ist die Methode zum Abrufen von Daten aus dem Datenbank und Rückgabe eines numerischen Arrays.
- „public function insert(…)“ ist die Einfügemethode, die die Methode „execute_query“ aufruft.
- „public function __destruct()“ ist der Klassendestruktor, der die Datenbankverbindung schließt.
Lassen Sie uns nun den Front-Controller erstellen index.php
<?php require 'opinion_poll_model.php'; $model = new Opinion_poll_model(); if (count($_POST) == 1) { echo "<script>alert('You did not vote!');</script>"; } 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 .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>"; } require 'results.html.php'; exit; } require 'opinion.html.php'; ?>
HIER,
- „erfordere ‚opinion_poll_model.php‘;“ lädt die Geschäftslogikklasse
- „$model = new Opinion_poll_model();“ Erstellt eine Instanz der Geschäftslogikklasse
- „if (count($_POST) == 1)…“ führt die Datenvalidierung durch und verwendet JavaSkript zum Anzeigen eines Meldungsfelds, wenn für den Kandidaten nicht gestimmt wurde.
- „if (count($_POST) > 1)…“ prüft, ob eine Stimme ausgewählt wurde, indem die Anzahl der Elemente im $_POST-Array gezählt wird. Wenn kein Element ausgewählt wurde, enthält $_POST nur das Submit-Element. Wenn ein Kandidat ausgewählt wurde, besteht das Array $_POST aus zwei Elementen, dem Submit- und dem Vote-Element. Dieser Code wird auch verwendet, um einen neuen Abstimmungsdatensatz einzufügen und dann die Ergebnisseite anzuzeigen
- Mit „exit;“ wird die Skriptausführung nach der Ergebnisanzeige beendet, so dass das Meinungsumfrage-Formular nicht angezeigt wird.
- „erforderlich ‚opinion.html.php‘;“ Zeigt das Meinungsumfrageformular an, wenn nichts ausgewählt wurde.
Lassen Sie uns nun die Ansichten erstellen. meinung.html.php
<html> <head> <title>JavaScript Libraries - Opinion Poll</title> </head> <body> <h2>JavaScript Libraries - Opinion Poll</h2> <p><b>What is your favorite JavaScript?</b></p> <form method="POST" action="index.php"> <p> <input type="radio" name="vote" value="1" />JQuery <br /><input type="radio" name="vote" value="2" />MooToolsl <br /><input type="radio" name="vote" value="3" />YUI Library <br /><input type="radio" name="vote" value="4" />Glow </p> <p><input type="submit" name="submitbutton" value="OK" /></p> </form> </body> </html>
results.html.php
<html> <head> <title>JavaScript Libraries Poll Results</title> </head> <body> <h2>Opinion Poll Results</h2> <p><b>What is your favorite JavaScript Library?</b></p> <p><b><?php echo $choices_count[0]; ?></b> people have thus far taken part in this poll:</p> <p> <table> <?php echo($table_rows); ?> </table> </body> </html>
Schritt 3) Testen unserer Anwendung
Vorausgesetzt, Sie haben die Dateien im Opinionpoll-Ordner gespeichert, navigieren Sie zur URL http://localhost/opinionpoll/
Wenn Sie auf die Schaltfläche „OK“ klicken, ohne eine JS-Bibliothek auszuwählen, wird das folgende Meldungsfeld angezeigt.
Wählen Sie eine JS-Bibliothek aus und klicken Sie dann auf die Schaltfläche „OK“. Sie erhalten eine Ergebnisseite ähnlich der unten gezeigten.
Zusammenfassung
- Die Unterteilung Ihrer Anwendung in Geschäftslogik und Front-Controller-Ansichtsebenen ist eine gute Vorgehensweise beim Anwendungsdesign
- JavaDas Skript ist nützlich für die Durchführung einer clientseitigen Validierung
- Es ist eine gute Programmierpraxis, file.html.php für Dateien zu verwenden, die sowohl HTML als auch HTML enthalten PHP-Codes
- Die Meinungsumfrageanwendung zeigt, wie das in den vorherigen Lektionen erworbene Wissen zur Entwicklung einer funktionierenden Anwendung mit einem Datenbank-Backend kombiniert werden kann.