|
|
|
|
|
для: BiFF
(26.03.2007 в 21:30)
| | Не кто не ответит? | |
|
|
|
|
|
|
|
для: BiFF
(24.03.2007 в 18:33)
| | Два новых вопроса. 1) Вопросы выводятся по 1. Как сделать чтобы после ответа на 1 вопрос, появлялся второй ну и т.д. (Кол-во вопросов мы не знаем)
2) Как организовать систему проверки правильности ответа? После каждого ответа проверять его правильность и если правильно, то записывать в табл. +1 балл, а если нет, то не чего? | |
|
|
|
|
|
|
|
для: Владимир Гайзенкампф
(24.03.2007 в 16:10)
| | Опечатка вышла в 1 вопросе имелись ввиду табл3 и 4, но теперь это уже не важно т.к. ответы мне помогли разобраться. Спасибо всем кто ответил. | |
|
|
|
|
|
|
|
для: BiFF
(23.03.2007 в 21:46)
| | 1) Путаница у вас. Делаете все попроще.
- сделаете таблицу - tblQuestion - словарь всех вопросов
- сделаете таблицу tblAnswer - словарь всех ответов
- сделаете таблицу tblRelation - словарь соответствий вопросов- ответов
tblQuestion
question_id
question
tblAnswer
answer_id
answer
tblRelation
question_id
answer_id
ball
|
| |
|
|
|
|
|
|
|
для: BiFF
(23.03.2007 в 21:46)
| | 4 таблица это не таблица, а обрывок
Если на каждый вопрос может быть строго один ответ otvetid правильного ответа нужно поместить полем rightotvet в таблицу vopros. Если может быть от нуля до нескольких правильных ответов, их нужно пометить в отдельном поле balls таблицы otvet, например, а балл прохода prohodball поместить в таблицу вопросов
1. Не надо - это разные сущности.
2. Двумя отдельными запросами. Это менее затратно, чем двутабличный запрос из которого добрую половину придется проигнорировать.
3a.
SELECT COUNT(*)
FROM vopros JOIN otvet USING (voprosid)
WHERE voprosid = $vopros_id AND rightotvet=$otvet
|
3b.
SELECT SUM(balls) - prohodball AS result
FROM vopros JOIN otvet USING (voprosid)
WHERE voprosid = $vopros_id AND otvetid IN($otvetlist)
|
предполагается что $otvetlist = explode(',', $_POST['otvet']); | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 09:34)
| | Продолжим тему вот создал таблицы
1 таблиц. ФИО и кол-во набраных баллов
2 табл. с вопросами
CREATE TABLE `test`.`vopros` (
`voprosid` int(10) unsigned NOT NULL auto_increment,
`vopros` text NOT NULL,
PRIMARY KEY (`voprosid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
3 табл. с ответами
CREATE TABLE `test`.`otvet` (
`voprosid` int(10) unsigned NOT NULL,
`otvetid` int(10) unsigned NOT NULL auto_increment,
`otvet` text NOT NULL,
PRIMARY KEY (`voprosid`,`otvetid`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
|
4 табл с правильными ответами и кол-во баллов за правильный ответ
Теперь вопросы.
1) Можно ли объединить таб. 2 и 3? Как? Или не надо?
2)Как вывести из таблиц 2 и 3 сам вопрос и ответы на него?
Пробовал сам, но у меня выводится так Вопрос1 - Ответ 1 к вопросу 1, Вопрос1 - Ответ 2 к вопросу 1 и т.д.
3)Пример запроса, для определения правильно ли ответил пользователь на вопрос?
4)Как при занесении данных в табл.3 будут присваиваться
voprosid ответам, ведь кол-во ответов на каждый вопрос м.б. разным
(т.е. когда в табл.3 будут заноситься ответы, как указать что otvetid 1,2 относятся к voprosid 1)? | |
|
|
|
|
|
|
|
для: BiFF
(19.03.2007 в 21:38)
| | Не надо делать несколько однотипных полей в таблице. Нехорошо это.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=15991 | |
|
|
|
|
|
|
|
для: BiFF
(19.03.2007 в 21:38)
| | Введите ещё одно поле, в котором будет помещаться номер правильного ответа. | |
|
|
|
|
|
|
| Сообственно создаю базу для скрипта тестирования. В ней будут 2 табл.
1.табл Question, 2 табл Answers.
Со второй таблицей всё понятно в ней будут поля Имя того кто проходил тест и кол-во набраных баллов.
А вот с первой табл. у меня возник вопрос, скажем там будут поля Vopros,Otvet1,Otvet2,Otvet3
Мой вопрос, каким образом указывать верные ответы в таблице? Также может у Вас есть свои варианты проектирования такой базы, был бы рад их выслушать. | |
|
|
|
|