Как сделать тестирование на сайте


Алгоритм, который Вам потребуется уже преобразовать в PHP+MySQL:

Создать таблицу с тестами. Здесь достаточно следующих полей:

- id (уникальный идентификатор);
- title (название теста);
- description (описание теста).

Можете также добавить количество прошедших данный тест и средний балл. Здесь всё элементарно, и Вы должны справиться с этим без проблем.

Создать таблицу с вопросами. Здесь нужны следующие поля:
- id (уникальный идентификатор);
- test_id (id теста, к которому принадлежит данный вопрос);
- title (текст вопроса);
- variant_1 (текст варианта 1);
- variant_2 (текст варианта 2);
- correct (правильный ответ).

Здесь Вы можете указывать любое количество вариантов, в данном случае, я поставил 2 варианта. В поле "correct" должно стоять число с правильным ответом, например, "1". При запуске теста необходимо записать в сессию id тех вопросов, на которые будет отвечать пользователь. Для этого извлеките из базы любое количество вопросов (например, 10 случайных вопросов для выбранного теста) и запишите их id в сессию пользователя. Здесь Вам необходимо записать в сессию массив, где ключами будут id вопросов, а в значении по умолчанию пустая строка. А в будущем будет идти тот ответ, который дал пользователь. Вывести первый вопрос из массива, который не имеет ответа (то есть значение равно пустой строке). Принять от пользователя ответ и записать в массив с ключом в виде id данного вопроса, ответ, который прислал пользователь.

Сделать редирект обратно на страницу с вопросами. Вернуться к пункту 4, если ещё остались вопросы без ответа. Если на все вопросы были даны ответы, то проверить массив в сессии на соответствие правильным ответам, и вывести окончательный результат.

Давайте разберём 3-й пункт с кодом:

<?php
$arr = array(5, 15, 1, 10, 2); // 5 id вопросов, которые извлекаются из базы
for ($i = 0; $i < count($arr); $i++) {
$arr_questions[$arr[$i]] = "";
}
$_SESSION["questions"] = $arr_questions;
?>

Теперь давайте разберём 5-й пункт, так как он тоже является, возможно, не совсем понятным:

<?php
$question_id = 5; // id вопроса, на который пользователь дал ответ (приходит из формы)
$answer = 1; // ответ, который дал пользователь (приходит из формы)
$_SESSION["questions"]["$question_id"] = $answer; // Записываем в сессию ответ на данный вопрос
?>

Самую суть я разобрал, а уже дальше постарайтесь этот алгоритм применить на практике самостоятельно. Ведь не секрет, что придумать алгоритм гораздо тяжелее, чем его реализовать, и Вам нужно лишь его реализовать, а это не так сложно.