-4

我向学生提出随机问题,并使用他的会话 ID 将他的答案存储到 mysql 中,然后以相同的方式提取。我在询问问题时在查询中使用了 Order By RAND() 函数

$query = "SELECT * FROM question ORDER BY RAND() LIMIT 0,1";

但是现在我想按顺序存储答案,我可以使用 Q_ID 但我不想向用户显示 q_id。那么如何在不向用户显示的情况下将 q_id 存储到另一个表中。其次,我也想向我的学生展示正确的答案。

但我真的不知道如何解决这些问题:(

用于存储答案的查询

$order= "INSERT INTO radio (Option1,Option2,Option3,user) VALUES ('".$Option['Option1']."','".$Option['Option2']."','".$Option['Option3']."','".session_id()."')";

从mysql中提取数据的查询

$qry=mysql_query("SELECT * FROM radio where user='".session_id()."'", $con);
4

1 回答 1

1

如果没有您的实际数据库架构/更多信息,很难给您最好的建议。

向表格单选添加一个字段,使其看起来像这样:

RADIO (*user*, *questionId*, Option1, Option2, Option3)

(由于堆栈溢出格式化星代表主键)

其中 questionID 是引用 QUESTION(id) 的外键。如果您的问题表中没有 id 字段,请也添加该字段。

然后,当您向用户显示问题时,将问题 ID 保存为标签内的隐藏输入字段,如下所示:

<input type='hidden' name='questionId' value='".$data['id']."' />

提交表单后,您的 $_POST 数组中的问题 ID 将位于$_POST['questionId']

然后您可以修改您的 INSERT 查询以插入问题 ID,并且在稍后显示数据时不显示它。

--

至于向学生显示正确答案,您需要以某种方式将正确答案存储在表格中。一种方法是在问题表中添加一个字段,指示哪些选项是正确答案,即 TINYINT(1),它将包含 1、2 或 3,具体取决于哪个答案是正确的。然后,您可以使用它来生成一个包含问题正确答案的页面。

于 2013-05-29T20:23:27.690 回答