PHP-Projekte: Erstellen Sie eine Meinungsumfrageanwendung

Inhaltsverzeichnis:

Anonim

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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}require 'results.html.php';exit;}require 'opinion.html.php';?>

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?

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:

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.