|
|
|
| Народ, помогите,плз. не понимаю нифига
Требуется создать опросник на PHP . Т.е. Есть база вопросов (которая может изменяться с помощью админки,по всей видимости) и есть клиентская часть,которая,собственно,выдает вопросы с вариантами ответов. Рандомно. Количество выдаваемых вопросов меньше,чем всего в базе.
Т.е. как это вижу я:
препод запускает файлик admin.php , вводит туда вопрос и варианты ответов,потом еще вопрос и еще варианты ответов. Жмет кнопку "сохранить". Все вопросы сохраняются в базе MySQL.
студент приходит и запускает файлик test.php . Ему выдается некоторое количество вопросов,меньшее,чем всего в базе. и варианты ответа. Человек отвечает, после чего,ему пишется,сколько было верных,а сколько нет.
Как это сделать?
да,можете скинуть мне ссылку на сайт,где могут помочь или можно посмотреть подобное... | |
|
|
|
|
|
|
|
|
для: mozhunt
(05.06.2007 в 12:37)
| | - | |
|
|
|
|
|
|
|
для: mozhunt
(05.06.2007 в 12:37)
| | Для начала определитесь со структурой базы данных. Я бы сделал 2 таблицы
1. вопросы
2. варианты ответов
Связь один ко многим (у одного вопроса несколько вариантов)
В админке удобно организовать ввод вариантов в <textarea> в столбик, и разбивать строку при помощи explode() дабы получить эти варианты.
Что касаеться ответов на вопросы, то тут есть несколько вариантов. Получаете, скажем, 20 вопросов из базы
а потом можно хранить промежуточные данные в базе, передавая через сессию уникальный id сеанса вопросов.
Примерно так:
Выбираем из базы 20 вопросов и записываем их во временную таблицу в которой есть поле SID определяющее к какому сеансу относятся эти вопросы и ANSWER - ответ пользователя на вопрос. Выбираем по одному вопросу, заполняя таблицу ответами до тех пор, пока не останиться вопросов с текущим SID и пустым полем ANSWER, а потом подсчитываем результаты. | |
|
|
|
|
|
|
|
для: Temnovit
(05.06.2007 в 12:52)
| | из примеров,что есть по ссылке - нет нормальных опросников - есть один,но выдается только 1 вопрос.
а как описал последний человек - я ничего не понимаю :( | |
|
|
|
|
|
|
|
для: mozhunt
(05.06.2007 в 16:24)
| | ищите по слову "голосование". выбор одного варианта из нескольких предложенных - это, по сути, и есть голосование. | |
|
|
|
|
|
|
|
для: elenaki
(05.06.2007 в 17:51)
| | должен быть не один вопрос,а несколько... | |
|
|
|
|
|
|
|
для: mozhunt
(05.06.2007 в 18:19)
| | в чем проблема? у меня по 30-60 вопросов каждый день в голосовании (это по предсказаниям результатов игр, но все равно очень похоже - вопрос, 3-5 вариантов ответа, 30-60 вопросов). | |
|
|
|
|
|
|
|
для: elenaki
(05.06.2007 в 19:31)
| | А как сделать чтобы вопросы хотя бы один за другим шли?
и как проверять на правильность ответов?
как реализовать систему тестирования,а не просто опрос? | |
|
|
|
|
|
|
|
для: mozhunt
(07.06.2007 в 01:01)
| | 1. что значит "один за другим шли"? куда? в смысле - появлялись бы поочереди? это надо
Java-script' ом делать - задержку вывода. или после вопроса ставить линк на следующий.
2. правильность тоже лучше JS- ом проверять или еще лучше - AJAX' ом. по клику на радио-
баттоне (т.е. при выборе варианта ответа) функции передавать номер вопроса и номер
ответа. AJAX делает запрос к базе, сверяет и возвращает ответ. или записывает его в базу,
если не надо показывать.
3. неплохо было бы еще запоминать имя отвечавшего :) или id его. потом препод сможет весь
список из базы вывести. | |
|
|
|
|
|
|
|
для: elenaki
(07.06.2007 в 15:34)
| | мда..сложноватая тема светит :) разбираться полгода :) | |
|
|
|
|
|
|
|
для: mozhunt
(07.06.2007 в 23:43)
| | По хорошему ее не спеша за день можно сделать - это еще если и авторизацию-регистрацию вставлять надо будет. А вообще-то формулировка вопроса довольно расплывчата. | |
|
|
|
|
|
|
|
для: Lotanaen
(08.06.2007 в 03:21)
| | я скоро буду делать опросник. и как раз на основе уже сделанной мной системе голосования.
по сути, это то же голосование, только будет еще таблица правильных ответов, с которой
надо будет сверяться. проблема в том, что делать все это придется в Firebird. и наверно, не
знаю пока, я заленюсь переделывать скрипт под MySQL... если только кто-то другой не
закажет тоже самое для MYSQL. программисты - народ ленивый :) | |
|
|
|
|
|
|
|
для: mozhunt
(05.06.2007 в 12:37)
| | О-ля-ля! Бывают в жизни совпадения=)
В аттаче скрипты и дамп БД.
Краткое описание:
При обращении к папке (или /index.php) вылезает опросник. Вопросов несколько, количество выводимых вопросов (файл limit.php) меняется в админке (о ней позже). Все вопросы выводятся одновременно. После выбора вариантов пользователь нажимает на "Сабмит" и данные отправляются на проверку. Результаты (файл results.php) отображаются в формате:
"Вопрос: Почем опиум для народа?
Ответ: 300рублей (ответ данный пользователем)
Правильный!
"
Через админку (admin.php) можно: добавить вопрос, изменить вопрос и варианты ответа на него(переопредилить правильный вариант), удалить вопрос, изменить количество единовременно выводимых вопросов.
Принятые ограничения:
1. Вариантов ответа от 2-х (напр. Да-Нет) до 4-х
2. Только один вариант правильный (радио-кнопки)
Файловый набор:
admin.php - админка
config.php - общие параметры соединения сБД
limit.php - файл с настройками (кол-во выводимых вопросов)
index.php - опросник
result.php - результаты теста
Отлавливает ошибки:
При ответах - если на как минимум один вопрос нет ответа
При создании/редактировании вопросов и вариантов - если отсутствует вопрос и/или как минимум два варианта ответа, или если вариант, отмеченный как правильный не существует (т.е. не заполнен. Например, есть ответы 1-Да, 2-Нет, а правильным указывается четвертый, которого нет) или если среди вариантов ответа не указан правильный
При изменении числа выводимых вопросов - если поле пустое или значение больше числа вопросов в БД.
Структура БД:
1)Таблица "questions" - id, question
Где "id" - первичный ключ, а "question" - текст вопроса
2)Таблица "answers" - id, answer, question, is_true
Где "id" - первичный ключ, "answer" - текст ответа, "question" - внешний ключ на вопрос к котрорму относится ответ, а "is_true" - поле, значения которого могут быть "y" или "n" - определяет верность ответа
Для желающих оттестить прям щас:
http://canis.jino-net.ru/testing/index.php - сам тест
http://canis.jino-net.ru/testing/admin.php - админка | |
|
|
|