Ваша оценка неверна. Что я получаю от вашего вопроса,
когда пользователь играет в викторине и отправляет свой ответ, вы получите массив ответов, например,
Шаг 1:
$quiz=array(
'answer_1' => 4,
'answer_2' => 2,
'answer_3' => 1,
'answer_4' => 3,
.....
.....
'answer_10' =>2,
)
Шаг2:
Полагаю, в вашей "таблице тестов" хранятся данные для правильного ответа (вы не очень хорошо это описали)
Надеюсь, в вашей таблице тестов хранятся такие данные, как,
ans_col - marks_col
answer_1 - 1
answer_2 - 4
answer_3 - 4
answer_4 - 3
answer_5 - 2
answer_6 - 2
answer_7 - 1
answer_8 - 4
answer_9 - 3
answer_10 - 1
Выполнить запрос:
SELECT question_number,marks
FROM Quiz
Это вернет вам массив, скажем, $ answer. (Проверьте, имеет ли массив $ answer ту же структуру, что и у массива $ quiz, если нет, то сделайте структуру $ answer такой же, как и у массива $ quiz.)
Теперь,
Шаг: 3
$result = array_diff_assoc($quiz,$answer);
$wrong_ans = count($result);
$marks_scored = 10 - $wrong_answer;
if($marks_scored >= 8){
$grade = 'A';
}
elseif($marks_scored > 5 && $marks_scored < 8)
{
$grade = 'B';
}
elseif($marks_scored > 2 && $marks_scored < 5)
{
$grade = 'c';
}
else
{
$grade = 'd';
}
шаг: 4
Для ваших требований
$username = fetch it from user table using user_id;
$subject = fetch it from user table using subject_id;
$score = $marks_scored;
$ranking = $grade;
Шаг: 5
Теперь создайте массив с именем $ output, создайте ключи, такие как имя пользователя, тема, оценка, ранжирование, с соответствующим значением и передайте этот массив '$ output' в файл представления. *
Примечание. Проверьте наличие структур массива.
Надеюсь, это очистит ваши сомнения.