PHP在线问卷调查统计工具开发指南

admin 2025-01-13 902 0

在数字化时代,问卷调查成为了获取用户反馈、市场调研的重要手段。本文将带你一步步用PHP开发一个在线问卷调查统计工具,助你轻松收集和分析数据。

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)