Gunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata
Dengan perkembangan Internet, semakin banyak laman web dan aplikasi telah mula menyediakan fungsi sembang masa nyata. Pengundian dalam talian juga merupakan ciri biasa dan boleh digunakan dalam pelbagai acara, pilihan raya dan proses membuat keputusan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pengundian dalam talian dengan fungsi sembang masa nyata dan memaparkan hasil undian dalam masa nyata.
Pertama, kita perlu mencipta pangkalan data untuk menyimpan data berkaitan pengundian. MySQL atau pangkalan data hubungan lain boleh digunakan. Katakan kita mencipta pangkalan data bernama "polls" dan mencipta tiga jadual di dalamnya: users
, polls
dan undian
. users
、polls
和votes
。
users
表包含用户的信息,比如用户名、密码等。polls
表包含投票的信息,比如投票的标题、选项等。votes
表包含投票结果的信息,比如用户ID、投票ID、选项等。下面是数据库表的创建语句:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `polls` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `votes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `poll_id` int(11) NOT NULL, `option` varchar(255) NOT NULL, PRIMARY KEY (`id`) );
在实现在线投票功能之前,首先需要实现用户注册和登录功能。这部分代码比较简单,可以使用PHP的mysqli
扩展与数据库进行交互。
下面是一个简单的注册和登录示例:
// 注册 $username = $_POST['username']; $password = $_POST['password']; $query = $mysqli->prepare("INSERT INTO users (username, password) VALUES (?, ?)"); $query->bind_param('ss', $username, $password); $query->execute(); $query->close(); // 登录 $username = $_POST['username']; $password = $_POST['password']; $query = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND password = ?"); $query->bind_param('ss', $username, $password); $query->execute(); $result = $query->get_result(); $user = $result->fetch_assoc(); $query->close(); if ($user) { // 登录成功,可以进行投票操作 } else { // 登录失败,用户名或密码错误 }
接下来,我们需要创建投票和投票展示的页面。这里使用HTML和CSS来创建投票页面,使用PHP来处理投票数据。
下面是一个简单的投票页面示例:
<html> <head> <title>在线投票</title> <style> .vote-option { margin-bottom: 10px; } </style> </head> <body> <h1>在线投票</h1> <form action="vote.php" method="post"> <h2>投票标题</h2> <div class="vote-option"> <input type="radio" name="option" value="option1"> 选项1 </div> <div class="vote-option"> <input type="radio" name="option" value="option2"> 选项2 </div> <input type="submit" value="投票"> </form> </body> </html>
这里的投票页面包含一个投票标题和多个投票选项。当用户点击"投票"按钮时,表单数据将被提交到vote.php
处理投票。
在vote.php
中,我们需要处理投票数据并将结果存储到数据库中。
下面是一个简单的投票处理和结果展示的代码示例:
// 投票处理 $userID = $_SESSION['userID']; // 根据用户的登录状态获取用户ID $pollID = $_POST['pollID']; $option = $_POST['option']; $query = $mysqli->prepare("INSERT INTO votes (user_id, poll_id, option) VALUES (?, ?, ?)"); $query->bind_param('iis', $userID, $pollID, $option); $query->execute(); $query->close(); // 投票结果展示 $query = $mysqli->prepare("SELECT option, COUNT(*) as count FROM votes WHERE poll_id = ? GROUP BY option"); $query->bind_param('i', $pollID); $query->execute(); $result = $query->get_result(); $query->close(); while ($row = $result->fetch_assoc()) { echo $row['option'] . ': ' . $row['count'] . ' 票<br>'; }
在投票处理部分,我们使用用户ID、投票ID和选项创建一个新的投票结果,并存储到votes
mysqli
PHP untuk berinteraksi dengan pangkalan data. 🎜🎜Berikut ialah contoh pendaftaran dan log masuk mudah: 🎜rrreeevote.php
untuk memproses undian. 🎜vote.php
, kita perlu memproses data pengundian dan menyimpan keputusan ke dalam pangkalan data. 🎜🎜Berikut ialah contoh kod mudah untuk pemprosesan undian dan paparan keputusan: 🎜rrreee🎜Di bahagian pemprosesan undian, kami menggunakan ID pengguna, ID pengundian dan pilihan untuk membuat keputusan pengundian baharu dan menyimpannya dalam Atas ialah kandungan terperinci Menggunakan PHP untuk melaksanakan pengundian dalam talian dan paparan keputusan undian dengan fungsi sembang masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!