我正在尝试制作一个测验程序,该程序将从 MySQL 数据库中获取问题及其选择,并将它们显示为用户填写的表格。用户(在填写所有字段后)将提交。这里没有评分,答案只是用该用户的注册 ID 存储在数据库中(这是因为有些答案是开放的,即:用户必须亲自输入答案,因此稍后将对此进行评估)。
我的表的结构是(我将发布创建查询,因为表看起来扭曲且难以阅读):
表1:这包含q_id(每个问题都有一个唯一的ID),question(实际问题),quiz_id(这个问题所属的quiz的id;有多个quizzes!),active(一个简单的“y”或“n”字段,检查此问题是否处于活动状态。如果不是,则问题不会添加到表单中),然后键入('c' 表示单选,'m' 表示多项选择,'o' 表示打开/用户文本输入)
CREATE TABLE `db_test`.`insr_questions` (
`q_id` INT(10) NOT NULL AUTO_INCREMENT ,
`question` VARCHAR(255) NOT NULL ,
`quiz_id` MEDIUMINT(8) UNSIGNED NOT NULL ,
`active` CHAR(1) NOT NULL ,
`type` CHAR(1) NOT NULL ,
PRIMARY KEY (`id`) );
表 2:这包含字段a_id(这是答案选项的唯一 ID)、choice(这是实际的答案选项)、question_id(这是这些答案选项所属的问题 ID)和active(这是同上)
CREATE TABLE `db_test`.`insr_answers` (
`a_id` INT(10) NOT NULL AUTO_INCREMENT ,
`choice` VARCHAR(75) NOT NULL ,
`question_id` MEDIUMINT(8) UNSIGNED NOT NULL ,
`active` CHAR(1) NOT NULL ,
PRIMARY KEY (`id`) );
所以这里的想法是检索一个quiz_id,然后深入问题表,检索所有属于该 quiz_id 的问题,然后取每个问题,并检索所有属于该 question_id 的答案。然后这些必须以 php 形式显示。
非常感谢任何正确方向的指针!
(我目前正在阅读可以完成此操作的不同方式,作为 php 的新手,所以我将在这个问题中添加我正在处理的任何其他代码!)