怎么用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表单,其中包含所有的问题。对于每个问题,根据其类型,需要显示不同类型的输入字段。下面是示例页面的代码:
问卷调查 问卷调查
该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的问卷调查系统就完成了。需要注意的是,这只是一个示例系统。在实际使用中,需要更多的安全和性能方面的考虑以及更多的功能细节。
上一篇
php网上标签怎么改
下一篇
php中怎么修改字体大小
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章