如何使用html/php/mysqli显示错误答案
我在下面有一个查询,其中显示了考试中每个问题的正确答案:如何使用html/php/mysqli显示错误答案,php,html,mysqli,Php,Html,Mysqli,我在下面有一个查询,其中显示了考试中每个问题的正确答案: <? $query = "SELECT q.SessionId, q.QuestionId an.Answer FROM Session s INNER JOIN Question q ON s.SessionId = q.SessionId JOIN Answer an ON q.QuestionId = an.QuestionId AND an.S
<?
$query = "SELECT q.SessionId, q.QuestionId an.Answer
FROM Session s
INNER JOIN Question q ON s.SessionId = q.SessionId
JOIN Answer an ON q.QuestionId = an.QuestionId
AND an.SessionId = q.SessionId
WHERE s.SessionName = "XULWQ"
ORDER BY q.QuestionId, an.Answer
";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("s", $assessment);
// execute query
$stmt->execute();
// This will hold the search results
$searchQuestionId = array();
$searchAnswer = array();
// Fetch the results into an array
// get result and assign variables (prefix with db)
$stmt->bind_result($dbSessionId, $dbQuestionId, $dbAnswer);
while ($stmt->fetch()) {
$searchQuestionId[] = $dbQuestionId;
$searchAnswer[] = $dbAnswer;
}
?>
现在,我已使用下面的代码将上述数据存储在php/html表中:
<table border='1' id='markstbl'>
<thead>
<tr>
<th class='questionth'>Question No.</th>
<th class='answerth'>Answer</th>
</tr>
</thead>
<tbody>
<?php
$row_span = array_count_values($searchQuestionId);
$prev_ques = '';
foreach($searchQuestionId as $key=>$questionId){
?>
<tr class="questiontd">
<?php
if($questionId != $prev_ques){
?>
<td class="questionnumtd q<?php echo$questionId?>_qnum" name="numQuestion" rowspan="<?php echo$row_span[$questionId]?>">
<?php echo$questionId?>
</td>
<?php
}
?>
<td class="answertd" name="answers[]"><?php echo$searchAnswer[$key]?><input type='hidden' id='hidanswerid' name='answersId[]' value='<?php echo$searchAnswerId[$key]?>'></td>
</tr>
<?php
$prev_ques = $questionId;
}
?>
</tbody>
</table>
结果:
SessionId QuestionId OptionId
137 1 5
137 2 2
SessionId QuestionId OptionId
137 1 5
137 2 2
然后使用php中的case语句显示每个case的字母(需要帮助编码):
例如
然后介绍如何从字母中删除正确答案(可能使用query,但我不确定),以便html/php表包含所有错误答案,而不是表中的正确答案
因此,我的问题是如何对其进行编码,以便在html/php表中显示错误的答案,而不是正确的答案
上面示例中的html/php表的输出应如下所示:
备注:您可以在打印时在问题之间交换答案 将选项存储在数组中
$option[1]= array(A,B,C);
$option[2]= array(A,B,C,D);
$option[3]= array(A,B,C,D,E);
.
.
.
.
$option[27]= array(True,False);
从数据库中检索选项_类型,与u相同
查询:
$query="SELECT q.SessionId, q.QuestionId, o.OptionId
FROM SESSION s
INNER JOIN Question q ON s.SessionId = q.SessionId
JOIN Option_Table o ON q.OptionId = o.OptionId
WHERE s.SessionName = "XULWQ"
ORDER BY q.QuestionId";
$query="SELECT q.SessionId, q.QuestionId, o.OptionId
FROM SESSION s
INNER JOIN Question q ON s.SessionId = q.SessionId
JOIN Option_Table o ON q.OptionId = o.OptionId
WHERE s.SessionName = "XULWQ"
ORDER BY q.QuestionId";
结果:
SessionId QuestionId OptionId
137 1 5
137 2 2
SessionId QuestionId OptionId
137 1 5
137 2 2
foreach问题ID
$incorrect_ans[QuestionId]=array_diff($option[OptionId],$correct_ans[QuestionId]);
使用数组_diff获取错误答案$leters=A、B、C、D$正确答案=B,D$不正确的\u ans=数组\u diff($letters,$correct\u ans)@Kirtan如果你能给我一个答案,告诉我代码页应该是什么样子的,我会很高兴标记你的答案,并将其存储在html表格中,很简单:
是的。对于每个问题ID,都有一系列不正确的答案。谢谢,我将继续:)