我在下面在此它顯示每個問題的正確答案在考試查詢:如何使用顯示不正確的答案HTML/PHP/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.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;
}
?>
下面是結果是從查詢輸出:
SessionId QuestionId Answer
137 1 B
137 1 D
137 1 F
137 2 A
137 2 C
現在我已存儲的上述數據中低於使用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>
輸出在HTML/PHP表:
所以你可以看到我輸出它包含在考試每題的正確答案的表。大。但現在我想創建另一個頁面 這是類似的,但這次除了顯示每個問題的正確答案,我希望它顯示每個問題的不正確答案。
我不知道是什麼做的最好的方式,但我的計劃,我相信是先檢索每個問題option_type(選項類型的期權數量來選擇一個答案):
查詢:
$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
然後使用一個case語句在PHP中顯示的字母爲每個個案(需要幫助編碼這):
如
case 1, OptionId = 1, letters = A B C
case 2, OptionId = 2, letters = A B C D
case 3, OptionId = 3, letters = A B C D E
... //continue going down
case 26, OptionId = 26, letters = A B C D E ... Z
case 27, OptionId = 27, letters = True False (Options True or False)
case 28, OptionId = 28, letters = Yes or No (Options Yes or No)
然後一些如何刪除字母的正確答案(也許使用查詢,但我不知道),所以HTML/PHP的表包含了所有不正確的答案,而不是正確的答案在表
所以我的問題是如何編碼,以顯示不正確的答案,而不是正確的答案在HTML/PHP表?
的HTML/PHP的表從上面的例子中的輸出應該是這樣的:
註釋:您可以在各個問題之間交換的答案,同時打印。
使用和array_diff得到不正確的答案。 $ leters = A,B,C,d; $ correct_ans = B,d; $ incorrect_ans =和array_diff($字母,$ correct_ans); – Kirtan
@Kirtan如果您可以爲我提供一個答案,顯示代碼頁的位置和內容,我會很高興並標記您的答案 – user1941871