怎么用php做问卷调查
时间 : 2023-04-25 08:02:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

想要使用 PHP 来创建问卷调查,我们需要以下步骤:

1. 创建数据库

首先,我们需要创建一个数据库,用于存储问卷调查的数据。我们可以使用 MySQL 或者其他关系型数据库管理系统。创建时需要确定好数据库名、用户名和密码等信息。

2. 创建问卷表

在数据库中创建一个问卷表,用于存储问卷的相关信息,例如题目、选项等。

可以参考以下代码:

```sql

CREATE TABLE `questionnaires` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`title` varchar(255) NOT NULL,

`description` text,

`created_at` datetime DEFAULT CURRENT_TIMESTAMP,

`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

3. 创建问题表

在数据库中创建一个问题表,用于存储所有的问题,包括其所属的问卷、问题的类型等信息。

可以参考以下代码:

```sql

CREATE TABLE `questions` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`questionnaire_id` int(11) NOT NULL,

`title` varchar(255) NOT NULL,

`type` enum('single','multiple','freeform') NOT NULL,

`created_at` datetime DEFAULT CURRENT_TIMESTAMP,

`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `questionnaire_id` (`questionnaire_id`),

CONSTRAINT `questions_ibfk_1` FOREIGN KEY (`questionnaire_id`) REFERENCES `questionnaires` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

4. 创建问题选项表

在数据库中创建一个问题选项表,用于存储每个问题的选项信息。

可以参考以下代码:

```sql

CREATE TABLE `question_options` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`question_id` int(11) NOT NULL,

`title` varchar(255) NOT NULL,

`created_at` datetime DEFAULT CURRENT_TIMESTAMP,

`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `question_id` (`question_id`),

CONSTRAINT `question_options_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

5. 创建回答表

在数据库中创建一个回答表,用于存储每个用户对每个问题的回答信息。

可以参考以下代码:

```sql

CREATE TABLE `answers` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`question_id` int(11) NOT NULL,

`user_id` int(11) NOT NULL,

`value` varchar(255) DEFAULT NULL,

`created_at` datetime DEFAULT CURRENT_TIMESTAMP,

`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`),

KEY `question_id` (`question_id`),

CONSTRAINT `answers_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

6. 创建 PHP 代码

在 PHP 页面中,我们可以使用 MySQLi 或者 PDO 等扩展来连接数据库并获取数据。具体的实现方式可以参考以下示例代码:

```php

<?php

// 连接数据库

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

// 查询问卷

$sql = "SELECT * FROM questionnaires";

$result = $conn->query($sql);

if ($result->num_rows > 0) {

// 输出数据

while($row = $result->fetch_assoc()) {

echo "id: " . $row["id"]. " - Title: " . $row["title"]. " - Description: " . $row["description"]. "<br>";

}

} else {

echo "0 results";

}

$conn->close();

?>

其他具体的代码实现,根据上述五步,结合实际需求和设计可以相应修改,当然这只是简单的例子,实际操作中还需要对操作进行更详细、全面的考虑。

问卷调查是一种收集用户意见和反馈信息的有效方式。PHP作为一种流行的Web开发语言,可以用来设计和实现问卷调查系统。下面是一个简单的示例,演示如何使用PHP在Web上创建问卷调查。

1. 数据库设计

首先,需要设计一个数据库来存储问卷调查的答案。示例中,我们使用MySQL来创建一个名为"survey"的数据库,并在其中创建一个名为"questions"的数据表。此数据表将具有以下四个字段:

- id:记录的唯一标识符,主键

- question:问题的文本描述

- type:问题的类型,如单选(radio)、多选(checkbox)、文本输入(text)

- options:如果问题类型为单选或多选,则需要输入可选的答案列表

可以使用以下SQL脚本创建"questions"数据表:

```sql

CREATE TABLE questions (

id INT(11) NOT NULL AUTO_INCREMENT,

question TEXT NOT NULL,

type VARCHAR(20) NOT NULL,

options TEXT,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 编写Web页面

接下来,需要编写一个Web页面,以显示所有问题,并允许用户回答。在这个示例中,我们使用HTML、CSS和PHP来编写这个页面。

要创建Web页面,需要创建一个HTML表单,其中包含所有的问题。对于每个问题,根据其类型,需要显示不同类型的输入字段。下面是示例页面的代码:



  
    
    问卷调查
    
  
  
    

问卷调查

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 '
'; echo ' ' . $row["question"] . ''; if ($row["type"] == "text") { echo ''; } else if ($row["type"] == "radio" || $row["type"] == "checkbox") { $options = explode(',', $row["options"]); foreach ($options as $option) { echo ''; } } echo '
'; } } else { echo "没有找到任何问题"; } $conn->close(); ?>

该Web页面通过一个名为submit.php的PHP脚本来提交回答。

3. 处理问卷提交

在submit.php脚本中,需要处理用户提交的数据,并将它们保存到数据库中。为此,首先需要连接数据库,然后将每个答案添加到单独的数据表中。以下是submit.php示例代码:

```php

<?php

$servername = "localhost";

$username = "username";

$password = "password";

$dbname = "survey";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

// 将每个问题的答案添加到单独的数据表中

foreach ($_POST as $key => $value) {

if (is_array($value)) {

$value = implode(',', $value);

}

$sql = "INSERT INTO " . $key . " VALUES (NULL, '" . $value . "')";

$conn->query($sql);

}

$conn->close();

?>

到此为止,一个简单的基于PHP的问卷调查系统就完成了。需要注意的是,这只是一个示例系统。在实际使用中,需要更多的安全和性能方面的考虑以及更多的功能细节。