|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
|||||||||||
Тестирование на сайте11.11.2014, 10:42. Показов 1659. Ответов 14
Метки нет (Все метки)
Привет, помогите разобрать создание тестирования на сайте. Нашел статью на эту тему, но она не разобрана почти, может кто поможет допилить? Или хотя бы ответить на ключевые вопросы? Текст статьи:
Алгоритм: 1. Создать таблицу с тестами. Здесь достаточно следующих полей: id (уникальный идентификатор), title (название теста), description (описание теста). Можете также добавить количество прошедших данный тест и средний балл. Здесь всё элементарно, и Вы должны справиться с этим без проблем. 2. Создать таблицу с вопросами. Здесь нужны следующие поля: id (уникальный идентификатор), test_id (id теста, к которому принадлежит данный вопрос), title (текст вопроса), variant_1 (текст варианта 1), variant_2 (текст варианта 2), correct (правильный ответ). Здесь Вы можете указывать любое количество вариантов, в данном случае, я поставил 2 варианта. В поле "correct" должно стоять число с правильным ответом, например, "1". 3. При запуске теста необходимо записать в сессию id тех вопросов, на которые будет отвечать пользователь. Для этого извлеките из базы любое количество вопросов (например, 10 случайных вопросов для выбранного теста) и запишите их id в сессию пользователя. Здесь Вам необходимо записать в сессию массив, где ключами будут id вопросов, а в значении по умолчанию пустая строка. А в будущем будет идти тот ответ, который дал пользователь. 4. Вывести первый вопрос из массива, который не имеет ответа (то есть значение равно пустой строке). 5. Принять от пользователя ответ и записать в массив с ключом в виде id данного вопроса, ответ, который прислал пользователь. 6. Сделать редирект обратно на страницу с вопросами. 7. Вернуться к пункту 4, если ещё остались вопросы без ответа. Если на все вопросы были даны ответы, то проверить массив в сессии на соответствие правильным ответам, и вывести окончательный результат. Давайте разберём 3-й пункт с кодом:
Теперь давайте разберём 5-й пункт, так как он тоже является, возможно, не совсем понятным:
0
|
|||||||||||
| 11.11.2014, 10:42 | |
|
Ответы с готовыми решениями:
14
Необходиомо реализовать тестирование студентов на имеющемся сайте на php и mysql Удаленное тестирование приложение/Пересылка на тестирование |
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|||||||
| 11.11.2014, 10:58 | |||||||
|
Ну так и ответ уже дан как это сделать ) Если это радиокнопки, то у них есть value="1..5" - К примеру. Где к примеру:
1 - Да 2 - Нет 3 - Возможно ...... Есть вопрос с ID на который только 1 ответ будет правельный. В итоге что мы получаем: $_SESSION['Вопрос_id']['Ответ_id'] = $Ответ_id' После этого сверяем что бы у ID вопроса, совподал его ID ответ с ответом пользователя.
0
|
|||||||
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
||||||
| 11.11.2014, 11:18 [ТС] | ||||||
|
"После этого сверяем что бы ID вопроса, совподал с ID ответом." можно поподробнее? Я не понял, есть допустим массив где хранятся id всех вопросов. Этот массив мы составляем при выборке из бд, потом мы на основе этого массива создаем многомерный массив, где ключ это id вопроса, а значение пусто (""), потом вторым шагом, так сказать, мы делаем какую-то абракадабру)
Вот есть массив c id всех вопросов и с пустыми значениями:
Добавлено через 9 минут Хотя я начал понимать. Этот вариант подходит только для того случая если вопросы выводятся по одному, а не всем скопом? То есть если на странице вывелся один вопрос, то при ответе на него в массив улетит, как раз его значение, и запишется в сессию в первый элемент массива. Потом второй вопрос, запишется во вторую ячейку массива сессии и так далее, а что делать если на странице сразу 10 вопросов и из формы в $_POST отправляется сразу много значений? Как тогда все пришедшие значения записать в сессию чтобы они записались в нужном порядке?
0
|
||||||
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|
| 11.11.2014, 11:19 | |
|
У вас к примеру 10 вопросов, будут на 1 странице или будет далее, далее?
0
|
|
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
|
| 11.11.2014, 11:21 [ТС] | |
|
10 вопросов на одной странице, без кнопки далее.
0
|
|
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|||||||||||
| 11.11.2014, 11:34 | |||||||||||
0
|
|||||||||||
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
||||||
| 11.11.2014, 11:35 [ТС] | ||||||
|
Я не понимаю, у него написано id вопроса, на который пользователь дал ответ (приходит из формы) :
0
|
||||||
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|||||||||||
| 11.11.2014, 11:37 | |||||||||||
Сообщение было отмечено Maksimus1991 как решение
Решение
Вот пример:
А вот что будет после Submit:
Array ( [name="1"] =>value="2" [name="2"] => value="3" ) или ещё проще Array ( [вопрос_id] =>ответ_id [вопрос_id] => ответ_id )
0
|
|||||||||||
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
||||||
| 11.11.2014, 11:53 [ТС] | ||||||
|
Спасибо тебе, помог мозг на место поставить, я блин совсем тупонул и даже не подумал, что пост это многомерный массив в котором собственно и передается id вопроса. То есть я так полагаю можно сделать что-то вроде:
0
|
||||||
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|
| 11.11.2014, 11:57 | |
|
1
|
|
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
|
| 11.11.2014, 14:55 [ТС] | |
|
Можешь подсказать, как потом массив сессии разобрать? Я что-то не понял, там вложенность идет массив, состоящий из трех массивов, каждый из которых состоит из массива?
0
|
|
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|||||||||||
| 11.11.2014, 15:16 | |||||||||||
|
Вот так тогда:
Вот этого не надо
0
|
|||||||||||
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
|
| 11.11.2014, 15:19 [ТС] | |
|
Работает, но я не понял в чем прикол) Почему-то тот вариант, что предложил я не работал, как надо) Может подскажешь, чем моя логика не подходила?
0
|
|
|
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
|
|
| 11.11.2014, 15:32 | |
|
$_SESSION[1] и $_SESSION[2]
Скажим так два разных массива. Переберать прешлосьбы весь $_SESSION, так как мы не знаем, быть может id_question = 1...1000 . и делать проверки, попали туда ли мы) Таким образом, мы создали$_SESSION['massiv'] , в котором лежит то что нам надо и нам не надо переберать весь $_SESSION.
0
|
|
|
12 / 6 / 1
Регистрация: 17.01.2014
Сообщений: 135
|
|
| 11.11.2014, 16:02 [ТС] | |
|
Спасибо, благодаря людям не ленящимся разъяснять начинающим, что и, как правильно делать, жить становится лучше)
0
|
|
| 11.11.2014, 16:02 | |
|
Помогаю со студенческими работами здесь
15
Unit -тестирование или автоматизированное тестирование Тестирование (или Юнит тестирование) Тести́рование програ́ммного обеспе́чения(Модульное тестирование, или юнит-тестирование) При логине на одном сайте автоматически выполнять логин на другом сайте Как в сайте создать счетчик, на котором видно, сколько посетителей было на сайте? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение
Это мой обзор планшета X220 с точки зрения школьника.
Недавно я решила попытаться уменьшить свой. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|