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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Связать таблицы.
 
 автор: NickCo   (12.04.2006 в 16:36)   письмо автору
 
 

Помогите создать тестовую программу. Задача: есть несколько тестов (физика, математика и т.д.), необходимо организовать таблицы, для хранения списка тестов, вопросов, вариантов ответов, правильных ответов, данных, о пользователе, который ответил на вопросы теста. Все получилось, кроме, как связать таблицы со списком тестов, и с вопросами теста.

   
 
 автор: kasmanaft   (12.04.2006 в 16:50)   письмо автору
 
   для: NickCo   (12.04.2006 в 16:36)
 

а что конкретно не получилось ?
если правильно понял, то есть вам не понятно как привезать варианты ответов к вопросам?
если так, то можно сделать следующим образом:
у каждого вопроса есть свой номер (id), соответственно у вариантов ответа этот номер должен быть "запомнен"

   
 
 автор: NickCo   (12.04.2006 в 16:58)   письмо автору
 
   для: kasmanaft   (12.04.2006 в 16:50)
 

Практически так, только со списком тестов и их вопросами. Т.Е. при открытии стораницы выводится список существующих тестов, при нажатии на ссылку, соответствующего теста выводятся вопросы с вариантами ответов. Но при этом, срисок тестов и вопросы к каждому из них находятся в разных таблицах.

   
 
 автор: kasmanaft   (12.04.2006 в 17:06)   письмо автору
 
   для: NickCo   (12.04.2006 в 16:58)
 

ну, просто когда нужно выводить вопросы для теста, составляем запрос типа
SELECT * FROM table WHERE id_test=$id_test
и все :)

а номер нужного теста передаем методом get (то есть в url адресе :)

   
 
 автор: NickCo   (12.04.2006 в 18:03)   письмо автору
 
   для: kasmanaft   (12.04.2006 в 17:06)
 

Не очень понял, я предполагал, наличие 2-х таблиц. 1) Содержащяя список тестов с полями test_id, name, title, date, autor. 2) Содержащей вопросы: quest_id, answer1, answer2, answer3, answer4, answer. Вы, я так понял предлагаете вставить еще test_id, и по нему проводить выборку? Но тогда возникает вопрос, как ее редактировать, через администраторскую панель самописную? Я так понял, Вы предлагаете хранить все вопросы, ко всем тестам воюной таблице? Я просто не знаю как это обычно делается?

   
 
 автор: Trianon   (12.04.2006 в 18:09)   письмо автору
 
   для: NickCo   (12.04.2006 в 18:03)
 

Ответы просятся в отдельную таблицу
|answer_id|quest_id|answer_no|answer_text|

   
 
 автор: NickCo   (12.04.2006 в 18:12)   письмо автору
 
   для: Trianon   (12.04.2006 в 18:09)
 

answer_no - это правильный ответ? Я согласен, учту, спасибо.

   
 
 автор: Trianon   (12.04.2006 в 18:20)   письмо автору
 
   для: NickCo   (12.04.2006 в 18:12)
 

answer_no это порядковый номер ответа в списке ответов к конретному вопросу.

Если на один вопрос правильных ответов может быть несколько - надо добавить еще одно поле в таблицу ответов ... напр. answer_true .
|answer_id|quest_id|answer_no|answer_text|answer_true|

Если на один вопрос может быть ровно один правильный ответ - надо добавить поле в таблицу questions
|question_id|test_id|question_text|answer_true|

Если порядок ответов неважен - поле answer_no можно выкинуть.

   
Rambler's Top100
вверх

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