Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk membangunkan fungsi soal selidik mudah menggunakan PHP

Bagaimana untuk membangunkan fungsi soal selidik mudah menggunakan PHP

WBOY
Lepaskan: 2023-09-21 14:06:01
asal
1327 orang telah melayarinya

Bagaimana untuk membangunkan fungsi soal selidik mudah menggunakan PHP

Cara menggunakan PHP untuk membangunkan fungsi soal selidik yang mudah, contoh kod khusus diperlukan

Soal selidik ialah kaedah pengumpulan data biasa, digunakan secara meluas dalam penyelidikan pasaran, penyelidikan akademik, pemantauan pendapat umum dan bidang lain. Dalam era Internet, menjalankan tinjauan soal selidik melalui laman web telah menjadi arus perdana. Sebagai bahasa skrip sebelah pelayan yang biasa digunakan, PHP mempunyai fungsi seperti memproses data borang dan operasi pangkalan data, dan sangat sesuai untuk membangunkan fungsi soal selidik yang mudah.

Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi soal selidik yang mudah, termasuk membuat soal selidik, mengumpul respons pengguna dan memaparkan hasil tinjauan. Berikut ialah langkah pelaksanaan khusus dan kod sampel.

Langkah 1: Buat jadual pangkalan data
Pertama, kita perlu mencipta pangkalan data untuk menyimpan data berkaitan soal selidik. Anda boleh menggunakan MySQL atau pangkalan data hubungan lain untuk mencipta dua jadual berikut:

  1. tinjauan: digunakan untuk menyimpan maklumat asas tentang soal selidik, termasuk medan seperti tajuk soal selidik, penerangan dan masa penciptaan.

    CREATE TABLE surveys (
     id INT AUTO_INCREMENT PRIMARY KEY,
     title VARCHAR(255) NOT NULL,
     description TEXT,
     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    Salin selepas log masuk
  2. soalan: Digunakan untuk menyimpan soalan dan maklumat pilihan bagi setiap soal selidik, termasuk medan seperti kandungan soalan, jenis soalan dan senarai pilihan. Medan survey_id digunakan untuk mewujudkan perkaitan kunci asing dengan jadual tinjauan.

    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)
    );
    Salin selepas log masuk

Langkah 2: Buat halaman soal selidik
Seterusnya, kita perlu buat halaman web untuk memaparkan soal selidik. Pengguna boleh memilih jawapan dan menyerahkan soal selidik di halaman ini. Di bawah ialah contoh halaman tinjauan ringkas (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>
Salin selepas log masuk

Langkah 3: Memproses data soal selidik
Selepas pengguna menyerahkan soal selidik, kami perlu menyimpan data jawapan ke pangkalan data. Berikut ialah contoh halaman pemprosesan data ringkas (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");
Salin selepas log masuk

Langkah 4: Paparkan hasil tinjauan
Akhir sekali, kita boleh membuat halaman untuk memaparkan hasil tinjauan. Di bawah ialah contoh halaman hasil mudah (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>
Salin selepas log masuk

Menggunakan contoh kod di atas, kita boleh dengan cepat membangunkan fungsi soal selidik yang mudah. Pengguna boleh memilih jawapan pada halaman soal selidik dan mengemukakan Sistem akan menyimpan jawapan ke pangkalan data dan memaparkan maklumat statistik pada halaman keputusan.

Sudah tentu, kod di atas hanyalah contoh mudah, dan isu seperti keselamatan dan pengesahan data juga mungkin perlu dipertimbangkan dalam projek sebenar. Pada masa yang sama, kod boleh dioptimumkan dan dikembangkan mengikut keperluan sebenar.

Saya harap artikel ini akan membantu anda memahami dan menggunakan PHP untuk membangunkan fungsi soal selidik yang mudah!

Atas ialah kandungan terperinci Bagaimana untuk membangunkan fungsi soal selidik mudah menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan