Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вопрос по созданию базы для скрипта тестирования

Сообщения:  [1-9] 

 
 автор: BiFF   (30.03.2007 в 18:29)   письмо автору
 
   для: BiFF   (26.03.2007 в 21:30)
 

Не кто не ответит?

   
 
 автор: BiFF   (26.03.2007 в 21:30)   письмо автору
 
   для: BiFF   (24.03.2007 в 18:33)
 

Два новых вопроса. 1) Вопросы выводятся по 1. Как сделать чтобы после ответа на 1 вопрос, появлялся второй ну и т.д. (Кол-во вопросов мы не знаем)
2) Как организовать систему проверки правильности ответа? После каждого ответа проверять его правильность и если правильно, то записывать в табл. +1 балл, а если нет, то не чего?

   
 
 автор: BiFF   (24.03.2007 в 18:33)   письмо автору
 
   для: Владимир Гайзенкампф   (24.03.2007 в 16:10)
 

Опечатка вышла в 1 вопросе имелись ввиду табл3 и 4, но теперь это уже не важно т.к. ответы мне помогли разобраться. Спасибо всем кто ответил.

   
 
 автор: Владимир Гайзенкампф   (24.03.2007 в 16:10)   письмо автору
 
   для: BiFF   (23.03.2007 в 21:46)
 

1) Путаница у вас. Делаете все попроще.
- сделаете таблицу - tblQuestion - словарь всех вопросов
- сделаете таблицу tblAnswer - словарь всех ответов
- сделаете таблицу tblRelation - словарь соответствий вопросов- ответов


tblQuestion
question_id
question

tblAnswer
answer_id
answer

tblRelation
question_id
answer_id
ball

   
 
 автор: Trianon   (23.03.2007 в 22:06)   письмо автору
 
   для: 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']);

   
 
 автор: BiFF   (23.03.2007 в 21:46)   письмо автору
 
   для: Trianon   (20.03.2007 в 09:34)
 

Продолжим тему вот создал таблицы
1 таблиц. ФИО и кол-во набраных баллов

fio text
col_ball int

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 табл с правильными ответами и кол-во баллов за правильный ответ

otvetid 
ball


Теперь вопросы.
1) Можно ли объединить таб. 2 и 3? Как? Или не надо?
2)Как вывести из таблиц 2 и 3 сам вопрос и ответы на него?
Пробовал сам, но у меня выводится так Вопрос1 - Ответ 1 к вопросу 1, Вопрос1 - Ответ 2 к вопросу 1 и т.д.
3)Пример запроса, для определения правильно ли ответил пользователь на вопрос?
4)Как при занесении данных в табл.3 будут присваиваться
voprosid ответам, ведь кол-во ответов на каждый вопрос м.б. разным
(т.е. когда в табл.3 будут заноситься ответы, как указать что otvetid 1,2 относятся к voprosid 1)?

   
 
 автор: Trianon   (20.03.2007 в 09:34)   письмо автору
 
   для: BiFF   (19.03.2007 в 21:38)
 

Не надо делать несколько однотипных полей в таблице. Нехорошо это.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=15991

   
 
 автор: cheops   (20.03.2007 в 01:43)   письмо автору
 
   для: BiFF   (19.03.2007 в 21:38)
 

Введите ещё одно поле, в котором будет помещаться номер правильного ответа.

   
 
 автор: BiFF   (19.03.2007 в 21:38)   письмо автору
 
 

Сообственно создаю базу для скрипта тестирования. В ней будут 2 табл.
1.табл Question, 2 табл Answers.
Со второй таблицей всё понятно в ней будут поля Имя того кто проходил тест и кол-во набраных баллов.
А вот с первой табл. у меня возник вопрос, скажем там будут поля Vopros,Otvet1,Otvet2,Otvet3
Мой вопрос, каким образом указывать верные ответы в таблице? Также может у Вас есть свои варианты проектирования такой базы, был бы рад их выслушать.

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования