In diesem PHP-Projekt werden wir eine Anwendung für Meinungsumfragen erstellen.
Die Meinungsumfrage wird aus 3 Hauptkomponenten bestehen;
Front Controller - Dies ist die Indexseite, die den zu ladenden HTML-Code bestimmt. Dadurch wird sichergestellt, dass unsere Anwendung einen einzigen Einstiegspunkt hat. Dies gibt uns mehr Kontrolle über die Anwendung.
Geschäftslogik - Diese enthält den PHP-Code für die Interaktion mit der Datenbank. Auf diese Weise können wir die Geschäftslogik von der Präsentation trennen, sodass unsere Anwendung einfach zu warten ist
Ansichten - Dies enthält den HTML-Code. Wir werden nämlich zwei Seiten haben;
- opinion.html.php - Dies 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-JavaScript-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 MySQL und dessen Verwaltung vorausgesetzt. Wenn Sie mit diesen MySQL nicht vertraut sind, lesen Sie unseren Abschnitt mit SQL-Tutorials.
Unsere Anwendung wird nur eine Tabelle mit 3 Feldern haben, nämlich;
- id - Nummer automatisch als Primärschlüssel generieren
- Wahl - die Nummer, die einen Präsidentschaftskandidaten repräsentiert
- ts - der Zeitstempel für die Abstimmung
Das folgende Skript erstellt unsere Tabelle js_libraries.
Schritt 2) Codierung unserer Anwendung
Lassen Sie uns nun unsere Geschäftslogikschicht erstellen, die die Datenbankkonnektivität übernimmt. '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);}}?>
HIER,
- "Public function __construct ()" ist die Klassenkonstruktormethode, mit der die Datenbankverbindung hergestellt wird
- "Public function execute_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 der Datenbank und zum Zurückgeben 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 die Front-Controller-Datei index.php erstellen
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
HIER,
- "Benötige '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 Datenüberprüfung durch und verwendet JavaScript, um ein Meldungsfeld anzuzeigen, wenn kein Kandidat gewählt wurde.
- "If (count ($ _ POST)> 1) ..." prüft, ob eine Abstimmung 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 Übermittlungselement. Wenn ein Kandidat ausgewählt wurde, besteht das Array $ _POST aus zwei Elementen, dem Element "Senden" und "Abstimmen". Dieser Code wird auch verwendet, um einen neuen Abstimmungsdatensatz einzufügen und dann die Ergebnisseite anzuzeigen
- "Ausfahrt;" wird verwendet, um die Skriptausführung zu beenden, nachdem die Ergebnisse angezeigt wurden, sodass das Meinungsumfrageformular nicht angezeigt wird.
- "Benötige 'opinion.html.php';" Zeigt das Meinungsumfrageformular an, wenn nichts ausgewählt wurde.
Lassen Sie uns nun die Ansichten erstellen. 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:
Schritt 3) Testen unserer Anwendung
Angenommen, 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 auf OK. Sie erhalten eine ähnliche Ergebnisseite wie die unten gezeigte.
Zusammenfassung
- Die Aufteilung Ihrer Anwendung in Geschäftslogik, Front-Controller-Ansichtsebenen, ist eine gute Praxis für das Anwendungsdesign
- JavaScript ist nützlich für die clientseitige Validierung
- Es ist eine gute Programmierpraxis, file.html.php für Dateien zu verwenden, die sowohl HTML- als auch PHP-Codes enthalten
- Die Meinungsumfrage zeigt, wie das in den vorherigen Lektionen erlernte Wissen zur Entwicklung einer funktionierenden Anwendung mit einem Datenbank-Backend zusammengeführt werden kann.