毕业设计:基于微信评选投票小程序的PHP后台
项目背景
随着社交媒体的普及,微信已经成为了人们日常生活中不可或缺的一部分。结合微信小程序开发的特性,我们决定创建一个基于微信的评选投票小程序,旨在解决传统投票方式中的一些不足,如匿名性、实时性和方便性。 本项目将采用PHP作为后台技术,方便进行数据存储和管理。
项目功能
- 用户注册与登录:用户可以使用微信帐号进行注册和登录。
- 创建投票:管理员可以创建新的投票,包括投票项目、开始和结束时间等信息。
- 参与投票:用户可以参与正在进行的投票,确保每个用户只能投一次票。
- 查看结果:投票结束后,用户可以查看投票结果。
技术架构
本项目采用前后端分离的架构,前端使用微信小程序,后端使用PHP和MySQL进行数据处理及存储。
PHP后台代码示例
以下是部分关键的PHP代码示例,展示如何实现投票创建及投票功能。
数据库连接
首先,我们需要建立与数据库的连接:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "voting_system";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
创建投票接口
以下是创建投票的PHP接口代码:
<?php
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 获取POST请求中的数据
$title = $_POST['title'];
$options = $_POST['options']; // 选项以JSON格式传递
// 插入投票到数据库
$sql = "INSERT INTO polls (title, options) VALUES ('$title', '$options')";
if ($conn->query($sql) === TRUE) {
echo json_encode(array("status" => "success", "message" => "投票创建成功"));
} else {
echo json_encode(array("status" => "error", "message" => $conn->error));
}
}
?>
参与投票接口
以下是用户参与投票的代码示例:
<?php
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$poll_id = $_POST['poll_id'];
$user_id = $_POST['user_id'];
$selected_option = $_POST['selected_option'];
// 检查用户是否已投过票
$check_sql = "SELECT * FROM votes WHERE poll_id='$poll_id' AND user_id='$user_id'";
$check_result = $conn->query($check_sql);
if ($check_result->num_rows > 0) {
echo json_encode(array("status" => "error", "message" => "您已经投过票"));
} else {
// 插入投票记录
$vote_sql = "INSERT INTO votes (poll_id, user_id, selected_option) VALUES ('$poll_id', '$user_id', '$selected_option')";
if ($conn->query($vote_sql) === TRUE) {
echo json_encode(array("status" => "success", "message" => "投票成功"));
} else {
echo json_encode(array("status" => "error", "message" => $conn->error));
}
}
}
?>
结果查询接口
最后,我们可以创建一个用于查询投票结果的接口:
<?php
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$poll_id = $_GET['poll_id'];
// 查询投票结果
$result_sql = "SELECT selected_option, COUNT(*) as vote_count FROM votes WHERE poll_id='$poll_id' GROUP BY selected_option";
$result = $conn->query($result_sql);
$data = array();
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
echo json_encode($data);
}
?>
小结
本项目通过微信小程序与PHP后台的结合,实现了一个完整的评选投票系统。用户不仅可以方便地投票,还能实时查看投票结果。通过使用MySQL数据库进行数据管理,确保了数据的安全性和一致性。未来,我们也希望能够在此基础上增加更多功能,例如定时投票、匿名投票等,提升系统的灵活性和用户体验。