在数字化时代,问卷调查成为了获取用户反馈、市场调研的重要手段。本文将带你一步步用PHP开发一个在线问卷调查统计工具,助你轻松收集和分析数据。
项目准备
首先,确保你的开发环境已安装以下工具:
- PHP:用于后端逻辑处理。
- MySQL:用于数据存储。
- HTML/CSS:用于前端界面设计。
1. 数据库设计
在MySQL中创建一个名为survey
的数据库,并包含以下表:
- questions:存储问卷问题。
- answers:存储用户回答。
CREATE DATABASE survey;
USE survey;
CREATE TABLE questions (
id INT AUTO_INCREMENT PRIMARY KEY,
question TEXT NOT NULL
);
CREATE TABLE answers (
id INT AUTO_INCREMENT PRIMARY KEY,
question_id INT,
answer TEXT NOT NULL,
FOREIGN KEY (question_id) REFERENCES questions(id)
);
2. 后端逻辑
创建问卷
编写PHP脚本create_survey.php
,用于添加问卷问题。
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'survey';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$question = $_POST['question'];
$sql = "INSERT INTO questions (question) VALUES ('$question')";
if ($conn->query($sql) === TRUE) {
echo "Question added successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
?>
提交回答
编写PHP脚本submit_answer.php
,用于提交用户回答。
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'survey';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$question_id = $_POST['question_id'];
$answer = $_POST['answer'];
$sql = "INSERT INTO answers (question_id, answer) VALUES ('$question_id', '$answer')";
if ($conn->query($sql) === TRUE) {
echo "Answer submitted successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
$conn->close();
?>
3. 前端界面
显示问卷
编写HTML页面survey.html
,用于展示问卷问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Survey</title>
</head>
<body>
<h1>Online Survey</h1>
<form action="submit_answer.php" method="post">
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'survey';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM questions";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div>";
echo "<label>" . $row["question"] . "</label>";
echo "<input type='hidden' name='question_id' value='" . $row["id"] . "'>";
echo "<input type='text' name='answer'>";
echo "</div>";
}
}
$conn->close();
?>
<button type="submit">Submit</button>
</form>
</body>
</html>
统计结果
编写PHP脚本stats.php
,用于展示问卷统计结果。
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'survey';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT q.question, a.answer FROM questions q JOIN answers a ON q.id = a.question_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div>";
echo "<
评论(0)