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

Форум MySQL

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

 

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

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

тема: Структура БД программы и замысловатый запрос....
 
 автор: Boss   (22.10.2005 в 17:12)   письмо автору
 
 

Добрый день!
Перейду сразу к делу:
В колледже задали задание, разработать "Конструктор тестов".
Вообщем думал-думал и решил что схема БД должа выглядеть след. образом:
---------------------------------------
Например, таблица "ТЕМА":

ID | NameTema
1 | Программирование

---------------------------------------
Затем таблица "Vopros"
ID | Tema | Vopros
1 | 1 | "Что такое ООП?"
2 | 1 | "Что такое полиморфизм?"

Где значение в поле Tema.Vopros = NameTema.Tema
-------------------------------------------
Таблица "Otvet"
ID | Vopros | Otvet | Pravilno/Nepravilno
1 | 1 | ответ 1 | 1
2 | 1 | ответ 2 | 0


Где значение поле Vopros.Otvet = Vopros.Vopros

Так вот, составил запрос:

"SELECT DISTINCT Tema.ID, Tema.NameTema, Vopros.Tema, Vopros.Vopros FROM Tema, Vopros WHERE 


Vopros.Tema = Tema.ID"

Выводит все вопросы, исключая дубли, с вопросами сообразил. А вот как составить таблицу для ответов:
т.е. Чтобы таблица принимала примерно след. вид:

Таблица "Otvet"
ID | Vopros | Otvet | Pravilno/Nepravilno
1 | 1 | ответ 1 | 1
2 | 1 | ответ 2 | 0

где значение 1 в поле Vopros принимала значение из таблицы Vopros, т.е. 1 - "Что такое ООП?"
2 - "Что такое полиморфизм?, т.е. по полю ID.Vopros. А таблица Vopros и поле Tema брала значение из таблицы "Tema".

Вообщем вот такой обширный вопрос у меня, надеюсь на вашу поддержку .....

   
 
 автор: WebTech   (22.10.2005 в 18:38)   письмо автору
 
   для: Boss   (22.10.2005 в 17:12)
 

select otvet.id, vopros.vopros, otvet.otvet, otvet.pravilno/nepravilno from otvet, vopros where vopros.id=otvet.vopros


А тема здесь не нужна, насколько я понял.

если необходимо добавить и тему, то

select otvet.id, tema.nametema, vopros.vopros, otvet.otvet, otvet.pravilno/nepravilno from tema, otvet, vopros where vopros.id=otvet.vopros and vopros.tema=tema.id

   
 
 автор: napTu3aH   (22.10.2005 в 18:50)   письмо автору
 
   для: Boss   (22.10.2005 в 17:12)
 

Ох и запутанные у вас названия таблиц и полей. Попробуйте такой запрос

SELECT tema.nametema,
vopros.vopros AS Vopros,
otvet.otvet AS Otvet,
otvet.PN AS 
FROM tema, vopros, otvet
WHERE tema.id = vopros.tema
AND Vopros.id = otvet.vopros


PN - это ваше поле Pravilno/Nepravilno

P.S. Лучше не называть имена полей со слешами, и не давать одинаковые имена полей и таблиц, взляните на запрос и вам станет ясно почему :-)))

   
Rambler's Top100
вверх

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