Έργα PHP: Δημιουργήστε μια εφαρμογή δημοσκόπησης γνώμης

Πίνακας περιεχομένων:

Anonim

Σε αυτό το έργο PHP , πρόκειται να δημιουργήσουμε μια αίτηση δημοσκόπησης.

Η δημοσκόπηση θα αποτελείται από 3 βασικά στοιχεία.

Μπροστινός ελεγκτής - αυτή είναι η σελίδα ευρετηρίου που θα καθορίσει τον κώδικα HTML που θα φορτωθεί. Αυτό θα διασφαλίσει ότι η εφαρμογή μας έχει ένα μόνο σημείο εισόδου. Αυτό θα μας δώσει περισσότερο έλεγχο στην εφαρμογή.

Business Logic - αυτός θα περιέχει τον κωδικό PHP για αλληλεπίδραση με τη βάση δεδομένων. Αυτό θα μας επιτρέψει να διαχωρίσουμε τη λογική της επιχείρησης από την παρουσίαση καθιστώντας την εφαρμογή μας εύκολη στη συντήρηση

Προβολές - αυτός θα περιέχει τον κώδικα HTML. Θα έχουμε δύο σελίδες, συγκεκριμένα:

  • opini.html.php - αυτός θα περιέχει τον κώδικα HTML με την ερώτηση και τις επιλογές
  • results.html.php - αυτός θα περιέχει τον κώδικα HTML που εμφανίζει τα αποτελέσματα της δημοσκόπησης

Υποθέσεις έγιναν

Η δημοσκόπηση θα θέσει την ερώτηση -

Ποια είναι η αγαπημένη σας βιβλιοθήκη JavaScript;

Οι απαντήσεις θα ήταν

  • JQuery
  • MooTools
  • Βιβλιοθήκη YUI
  • Λάμψη

Ακολουθούν τα βήματα για τη δημιουργία της εφαρμογής -

Βήμα 1) Συνδεσιμότητα βάσης δεδομένων

Αυτή η ενότητα προϋποθέτει γνώση της MySQL και πώς να τη διαχειριστεί, εάν δεν είστε εξοικειωμένοι με αυτήν την MySQL, ανατρέξτε στην ενότητα των οδηγών SQL.

Η εφαρμογή μας θα έχει έναν πίνακα μόνο με 3 πεδία:

  • id - αυτόματη δημιουργία αριθμού ως πρωτεύον κλειδί
  • επιλογή - ο αριθμός που αντιπροσωπεύει έναν προεδρικό υποψήφιο
  • ts - η χρονική σήμανση για την ψηφοφορία

Το παρακάτω σενάριο δημιουργεί τον πίνακα js_libraries.

Βήμα 2) Κωδικοποίηση της εφαρμογής μας

Ας δημιουργήσουμε τώρα το επιχειρησιακό λογικό επίπεδο που θα χειριστεί τη συνδεσιμότητα της βάσης δεδομένων. "γνώμη_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);}}?>

ΕΔΩ,

  • Το "public function __construct ()" είναι η μέθοδος κατασκευαστή κλάσης που χρησιμοποιείται για τη δημιουργία της σύνδεσης βάσης δεδομένων
  • "Public function execute_query (…)" είναι η μέθοδος εκτέλεσης ερωτημάτων όπως εισαγωγή, ενημέρωση και διαγραφή
  • Το "public function select" είναι η μέθοδος για την ανάκτηση δεδομένων από τη βάση δεδομένων και την επιστροφή ενός αριθμητικού πίνακα.
  • "Public function insert (…)" είναι η μέθοδος εισαγωγής που καλεί τη μέθοδο execute_query.
  • Το "public function __destruct ()" είναι ο καταστροφέας κλάσης που κλείνει τη σύνδεση βάσης δεδομένων.

Ας δημιουργήσουμε τώρα τον μπροστινό ελεγκτή 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';?>

ΕΔΩ,

  • "Απαιτείται 'pendapat_poll_model.php'; φορτώνει την κατηγορία επιχειρηματικής λογικής
  • "$ Model = new Opinion_poll_model ();" δημιουργεί μια παρουσία της κλάσης επιχειρηματικής λογικής
  • "If (count ($ _ POST) == 1) ..." εκτελεί την επικύρωση δεδομένων και χρησιμοποιεί JavaScript για να εμφανίσει ένα πλαίσιο μηνύματος εάν δεν έχει ψηφιστεί ο υποψήφιος.
  • "If (count ($ _ POST)> 1) ..." ελέγχει εάν έχει επιλεγεί μια ψηφοφορία μετρώντας τον αριθμό των στοιχείων στον πίνακα $ _POST. Εάν δεν έχει επιλεγεί κανένα στοιχείο, το $ _POST θα περιέχει μόνο το αντικείμενο υποβολής. Εάν έχει επιλεγεί ένας υποψήφιος, ο πίνακας $ _POST θα αποτελείται από δύο στοιχεία, το στοιχείο υποβολής και ψηφοφορίας. Αυτός ο κωδικός χρησιμοποιείται επίσης για την εισαγωγή ενός νέου αρχείου ψηφοφορίας και στη συνέχεια εμφάνιση της σελίδας αποτελεσμάτων
  • "έξοδος;" χρησιμοποιείται για τον τερματισμό της εκτέλεσης του σεναρίου μετά την εμφάνιση των αποτελεσμάτων έτσι ώστε να μην εμφανίζεται η φόρμα δημοσκόπησης.
  • "Απαιτείται 'γνώμη.html.php';" εμφανίζει τη φόρμα δημοσκοπήσεων, εάν δεν έχει επιλεγεί τίποτα.

Ας δημιουργήσουμε τώρα τις απόψεις. γνώμη.html.php

JavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript?

JQuery
MooToolsl
YUI Library
Glow

αποτελέσματα.html.php

JavaScript Libraries Poll Results

Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Βήμα 3) Δοκιμή της εφαρμογής μας

Ας υποθέσουμε ότι έχετε αποθηκεύσει τα αρχεία στο φάκελο pollpoll, μεταβείτε στη διεύθυνση URL http: // localhost / opinipoll /

Εάν κάνετε κλικ στο κουμπί Ok χωρίς να επιλέξετε μια βιβλιοθήκη JS, θα λάβετε το ακόλουθο πλαίσιο μηνύματος.

Επιλέξτε μια βιβλιοθήκη JS και, στη συνέχεια, κάντε κλικ στο κουμπί OK. Θα λάβετε τη σελίδα αποτελεσμάτων παρόμοια με αυτήν που φαίνεται παρακάτω.

Περίληψη

  • Χωρίζοντας την εφαρμογή σας σε επιχειρηματική λογική, τα επίπεδα προβολής μπροστινού ελεγκτή είναι μια καλή πρακτική σχεδιασμού εφαρμογών
  • Το JavaScript είναι χρήσιμο για την εκτέλεση επικύρωσης από την πλευρά του πελάτη
  • Είναι μια καλή πρακτική προγραμματισμού να χρησιμοποιείτε το file.html.php για αρχεία που περιέχουν κώδικα HTML και PHP
  • Η αίτηση δημοσκόπησης δείχνει πώς οι γνώσεις που αποκτήθηκαν στα προηγούμενα μαθήματα μπορούν να συνδυαστούν για την ανάπτυξη μιας εφαρμογής εργασίας με ένα back-end βάσης δεδομένων.