PHP प्रोजेक्ट्स: एक जनमत सर्वेक्षण एप्लिकेशन बनाएं
इस PHP प्रोजेक्ट में, हम एक जनमत सर्वेक्षण एप्लिकेशन बनाने जा रहे हैं।
जनमत सर्वेक्षण में 3 प्रमुख घटक शामिल होंगे;
फ्रंट कंट्रोलर - यह इंडेक्स पेज है जो लोड किए जाने वाले HTML कोड को निर्धारित करेगा। यह सुनिश्चित करेगा कि हमारे एप्लिकेशन में एक ही एंट्री पॉइंट हो। इससे हमें एप्लिकेशन पर अधिक नियंत्रण मिलेगा।
व्यावसायिक तर्क - इसमें डेटाबेस के साथ इंटरैक्ट करने के लिए PHP कोड होगा। यह हमें व्यावसायिक तर्क को प्रस्तुति से अलग करने की अनुमति देगा जिससे हमारे एप्लिकेशन को बनाए रखना आसान हो जाएगा
दृश्य - इसमें HTML कोड होगा। हमारे पास दो पेज होंगे;
- opinion.html.php - इसमें प्रश्न और विकल्पों के साथ HTML कोड होगा
- results.html.php - इसमें HTML कोड होगा जो जनमत सर्वेक्षण के परिणाम प्रदर्शित करता है
बनाई गई धारणाएँ
जनमत सर्वेक्षण में यह प्रश्न पूछा जाएगा –
आपकी पसंद क्या है Javaलिपि पुस्तकालय?
उत्तर होंगे
- JQuery
- Mootools
- YUI लाइब्रेरी
- चमक
एप्लिकेशन बनाने के चरण इस प्रकार हैं-
चरण 1) डेटाबेस कनेक्टिविटी
यह खंड निम्नलिखित का ज्ञान मानता है MySQL और इसे कैसे प्रशासित किया जाए, यदि आप इनसे परिचित नहीं हैं MySQL, हमारी जाँच करें एसक्यूएल ट्यूटोरियल अनुभाग।
हमारे एप्लिकेशन में केवल 3 फ़ील्ड वाली एक तालिका होगी;
- आईडी - प्राथमिक कुंजी के रूप में स्वचालित रूप से उत्पन्न संख्या
- चॉइस - राष्ट्रपति पद के उम्मीदवार का प्रतिनिधित्व करने वाली संख्या
- ts - वोट के लिए टाइमस्टैम्प
नीचे दी गई स्क्रिप्ट हमारी js_libraries तालिका बनाती है।
<?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`) ); ?>
चरण 2) हमारे एप्लिकेशन को कोड करना
आइए अब अपना बिजनेस लॉजिक लेयर बनाएं जो डेटाबेस कनेक्टिविटी को संभालेगा। '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); } } ?>
यहाँ,
- “public function __construct()” क्लास कन्स्ट्रक्टर विधि है जिसका उपयोग डेटाबेस कनेक्शन स्थापित करने के लिए किया जाता है
- “public function execute_query(…)” इन्सर्ट, अपडेट और डिलीट जैसी क्वेरीज़ को निष्पादित करने की विधि है
- "पब्लिक फंक्शन सेलेक्ट" डेटा पुनर्प्राप्त करने की विधि है डेटाबेस और एक संख्यात्मक सरणी लौटाना.
- “public function insert(…)” वह insert विधि है जो execute_query विधि को कॉल करती है।
- “public function __destruct()” क्लास डिस्ट्रक्टर है जो डेटाबेस कनेक्शन को बंद करता है।
आइये अब फ्रंट कंट्रोलर बनाएं 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'; ?>
यहाँ,
- “require 'opinion_poll_model.php';” बिज़नेस लॉजिक क्लास को लोड करता है
- “$model = new Opinion_poll_model();” बिज़नेस लॉजिक क्लास का एक उदाहरण बनाता है
- “if (count($_POST) == 1)…” डेटा सत्यापन करता है और उपयोग करता है Javaयदि किसी उम्मीदवार को वोट नहीं दिया गया है तो संदेश बॉक्स प्रदर्शित करने के लिए स्क्रिप्ट।
- “if (count($_POST) > 1)…” $_POST सरणी में आइटम की संख्या गिनकर जाँचता है कि कोई वोट चुना गया है या नहीं। यदि कोई आइटम नहीं चुना गया है, तो $_POST में केवल सबमिट आइटम होगा। यदि कोई उम्मीदवार चुना गया है, तो $_POST सरणी में दो तत्व होंगे, सबमिट और वोट आइटम। इस कोड का उपयोग एक नया वोट रिकॉर्ड डालने और फिर परिणाम पृष्ठ प्रदर्शित करने के लिए भी किया जाता है
- “exit;” का उपयोग परिणाम प्रदर्शित होने के बाद स्क्रिप्ट निष्पादन को समाप्त करने के लिए किया जाता है ताकि जनमत सर्वेक्षण फॉर्म प्रदर्शित न हो।
- “require 'opinion.html.php';” यदि कुछ भी चयनित नहीं किया गया है तो जनमत सर्वेक्षण फ़ॉर्म प्रदर्शित करता है।
आइये अब दृश्य बनाएं। राय.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>
परिणाम.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>
चरण 3) हमारे एप्लिकेशन का परीक्षण
मान लें कि आपने फ़ाइलों को opinionpoll फ़ोल्डर में सहेजा है, तो URL http://localhost/opinionpoll/ पर ब्राउज़ करें
यदि आप JS लाइब्रेरी का चयन किए बिना ओके बटन पर क्लिक करते हैं, तो आपको निम्नलिखित संदेश बॉक्स मिलेगा।
JS लाइब्रेरी चुनें और फिर OK बटन पर क्लिक करें। आपको नीचे दिखाए गए परिणाम पृष्ठ के समान परिणाम पृष्ठ मिलेगा।
सारांश
- अपने एप्लिकेशन को बिजनेस लॉजिक, फ्रंट कंट्रोलर व्यू लेयर्स में विभाजित करना एक अच्छा एप्लिकेशन डिज़ाइन अभ्यास है
- Javaस्क्रिप्ट क्लाइंट-साइड सत्यापन करने के लिए उपयोगी है
- HTML और HTML दोनों वाली फ़ाइलों के लिए file.html.php का उपयोग करना एक अच्छा प्रोग्रामिंग अभ्यास है। PHP कोड
- जनमत सर्वेक्षण अनुप्रयोग यह दर्शाता है कि पिछले पाठों में सीखे गए ज्ञान को डेटाबेस बैक-एंड के साथ एक कार्यशील अनुप्रयोग विकसित करने में कैसे उपयोग किया जा सकता है।