Maison  >  Article  >  développement back-end  >  Comment développer une fonction de questionnaire simple en utilisant PHP

Comment développer une fonction de questionnaire simple en utilisant PHP

WBOY
WBOYoriginal
2023-09-21 14:04:541214parcourir

Comment développer une fonction de questionnaire simple en utilisant PHP

Comment utiliser PHP pour développer une fonction de questionnaire simple, des exemples de code spécifiques sont nécessaires

Le questionnaire est une méthode de collecte de données courante, largement utilisée dans les études de marché, la recherche universitaire, la surveillance de l'opinion publique et d'autres domaines. À l’ère d’Internet, la réalisation d’enquêtes par questionnaire via des pages Web est devenue courante. En tant que langage de script côté serveur couramment utilisé, PHP possède des fonctions telles que le traitement des données de formulaire et des opérations de base de données, et est très approprié pour développer des fonctions de questionnaire simples.

Cet article expliquera comment utiliser PHP pour développer une fonction d'enquête par questionnaire simple, notamment la création de questionnaires, la collecte des réponses des utilisateurs et l'affichage des résultats de l'enquête. Voici les étapes de mise en œuvre spécifiques et un exemple de code.

Étape 1 : Créer une table de base de données
Tout d'abord, nous devons créer une base de données pour stocker les données liées au questionnaire. Vous pouvez utiliser MySQL ou d'autres bases de données relationnelles pour créer les deux tables suivantes :

  1. enquêtes : utilisées pour stocker des informations de base sur les questionnaires, y compris des champs tels que le titre, la description et l'heure de création du questionnaire.

    CREATE TABLE surveys (
     id INT AUTO_INCREMENT PRIMARY KEY,
     title VARCHAR(255) NOT NULL,
     description TEXT,
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
  2. questions : utilisé pour stocker les questions et les informations sur les options pour chaque questionnaire, y compris des champs tels que le contenu de la question, le type de question et la liste d'options. Le champ Survey_id est utilisé pour établir une association de clé étrangère avec la table Surveys.

    CREATE TABLE questions (
     id INT AUTO_INCREMENT PRIMARY KEY,
     survey_id INT NOT NULL,
     question TEXT,
     type ENUM('单选', '多选', '文本') NOT NULL,
     options TEXT,
     FOREIGN KEY (survey_id) REFERENCES surveys(id)
    );

Étape 2 : Créer une page de questionnaire
Ensuite, nous devons créer une page Web pour afficher le questionnaire. Les utilisateurs peuvent sélectionner des réponses et soumettre des questionnaires sur cette page. Vous trouverez ci-dessous un exemple de page d'enquête simple (survey.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷信息
$surveyId = $_GET['id']; // 从URL参数获取问卷ID
$surveyStmt = $pdo->prepare("SELECT * FROM surveys WHERE id = :id");
$surveyStmt->bindParam(':id', $surveyId);
$surveyStmt->execute();
$survey = $surveyStmt->fetch();

// 获取问题列表
$questionsStmt = $pdo->prepare("SELECT * FROM questions WHERE survey_id = :survey_id");
$questionsStmt->bindParam(':survey_id', $surveyId);
$questionsStmt->execute();
$questions = $questionsStmt->fetchAll();
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo $survey['title']; ?></title>
</head>
<body>
    <h1><?php echo $survey['title']; ?></h1>
    <p><?php echo $survey['description']; ?></p>

    <form action="submit.php" method="POST">
        <?php foreach ($questions as $question): ?>
            <h3><?php echo $question['question']; ?></h3>
            <?php if ($question['type'] == '单选' || $question['type'] == '多选'): ?>
                <?php $options = explode("
", $question['options']); ?>
                <?php foreach ($options as $option): ?>
                    <label>
                        <input type="<?php echo $question['type'] == '单选' ? 'radio' : 'checkbox'; ?>" name="answers[<?php echo $question['id']; ?>][]" value="<?php echo $option; ?>">
                        <?php echo $option; ?>
                    </label>
                <?php endforeach; ?>
            <?php else: ?>
                <textarea name="answers[<?php echo $question['id']; ?>]"></textarea>
            <?php endif; ?>
        <?php endforeach; ?>

        <input type="hidden" name="survey_id" value="<?php echo $surveyId; ?>">
        <input type="submit" value="提交">
    </form>
</body>
</html>

Étape 3 : Traiter les données du questionnaire
Une fois que l'utilisateur a soumis le questionnaire, nous devons enregistrer les données de réponse dans la base de données. Ce qui suit est un exemple de page de traitement de données simple (submit.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷ID
$surveyId = $_POST['survey_id'];

// 处理问题答案
foreach ($_POST['answers'] as $questionId => $answer) {
    $answer = is_array($answer) ? implode(', ', $answer) : $answer;
    
    $answerStmt = $pdo->prepare("INSERT INTO answers (survey_id, question_id, answer) VALUES (?, ?, ?)");
    $answerStmt->execute([$surveyId, $questionId, $answer]);
}

// 跳转到结果页面
header("Location: result.php?id=$surveyId");

Étape 4 : Afficher les résultats de l'enquête
Enfin, nous pouvons créer une page pour afficher les résultats de l'enquête. Vous trouverez ci-dessous un exemple simple de page de résultats (result.php).

<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password");

// 获取问卷ID
$surveyId = $_GET['id'];

// 获取问卷信息
$surveyStmt = $pdo->prepare("SELECT * FROM surveys WHERE id = :id");
$surveyStmt->bindParam(':id', $surveyId);
$surveyStmt->execute();
$survey = $surveyStmt->fetch();

// 获取问题列表和答案统计
$questionsStmt = $pdo->prepare("
    SELECT q.id, q.question, q.type, q.options, a.answer, COUNT(*) AS count
    FROM questions q
    LEFT JOIN answers a ON q.id = a.question_id
    WHERE q.survey_id = :survey_id
    GROUP BY q.id, a.answer
");
$questionsStmt->bindParam(':survey_id', $surveyId);
$questionsStmt->execute();
$questions = $questionsStmt->fetchAll();
?>

<!DOCTYPE html>
<html>
<head>
    <title><?php echo $survey['title']; ?> - 结果</title>
</head>
<body>
    <h1><?php echo $survey['title']; ?> - 结果</h1>
    
    <?php foreach ($questions as $question): ?>
        <h3><?php echo $question['question']; ?></h3>
        <?php if ($question['type'] == '单选' || $question['type'] == '多选'): ?>
            <?php $options = explode("
", $question['options']); ?>
            <ul>
                <?php foreach ($options as $option): ?>
                    <li><?php echo $option; ?> - <?php echo $question['count']; ?></li>
                <?php endforeach; ?>
            </ul>
        <?php else: ?>
            <p><?php echo $question['answer']; ?></p>
        <?php endif; ?>
    <?php endforeach; ?>
</body>
</html>

En utilisant l'exemple de code ci-dessus, nous pouvons rapidement développer une fonction de questionnaire simple. Les utilisateurs peuvent sélectionner les réponses sur la page du questionnaire et les soumettre. Le système enregistrera les réponses dans la base de données et affichera les informations statistiques sur la page des résultats.

Bien sûr, le code ci-dessus n'est qu'un exemple simple, et des problèmes tels que la sécurité et la vérification des données peuvent également devoir être pris en compte dans les projets réels. Dans le même temps, le code peut être optimisé et étendu en fonction des besoins réels.

J'espère que cet article vous aidera à comprendre et à utiliser PHP pour développer une fonction de questionnaire simple !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn