нужна помощь по выборке из базы

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
добрый вечер. Что то не могу собрать базу.

проблема такая

база имеет структуру из 3 таблиц

bilets билет 1 2 3 4 5 итд
glava глава 1 2 3 4 итд
var_otv варианты ответов на каждый вопрос
вопрос 1, вариант ответа 1 2 3 4 5 6, глава 1,
вопрос 2, вариант ответа 1 2 , глава 1,

вопрос 1, вариант ответа 1 2 3 4 5 6 8 9, глава 2,

вопрос 1, вариант ответа 1 2 , глава 3,



каждая глава может иметь повторяющиеся номера но в разных главах.

пробовал по разному нифига не выходит.


Вот дамп базы

HTML:
  CREATE TABLE `bilets` (
  `id` int(20) NOT NULL auto_increment,
  `glava` varchar(255) default NULL,
  `vopros` varchar(255) NOT NULL,
  `var` varchar(255) default NULL,
  `pravilno` varchar(15) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `var_otv` (`var`)
) ENGINE=MyISAM AUTO_INCREMENT=662 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=662 ;

-- Дамп данных таблицы `bilets`

INSERT INTO `bilets` VALUES (0, '1', '*вопрос 1', '1', 'тут правильный ответ');
INSERT INTO `bilets` VALUES (1, '1', '*вопрос 2', '2', '');
INSERT INTO `bilets` VALUES (2, '1', '*вопрос 3', '3', '');
INSERT INTO `bilets` VALUES (3, '1', '*вопрос 4', '4', '');
INSERT INTO `bilets` VALUES (4, '2', '*вопрос 1', '1', '');
INSERT INTO `bilets` VALUES (5, '2', '*вопрос 2', '2', '');
INSERT INTO `bilets` VALUES (6, '2', '*вопрос 3', '3', '');
INSERT INTO `bilets` VALUES (7, '2', '*вопрос 4', '4', '');
INSERT INTO `bilets` VALUES (8, '3', '*вопрос 1', '1', '');
INSERT INTO `bilets` VALUES (9, '3', '*вопрос 2', '2', '');
INSERT INTO `bilets` VALUES (10, '3', '*вопрос 3', '3', '');
INSERT INTO `bilets` VALUES (11, '3', '*вопрос 4', '4', '');
INSERT INTO `bilets` VALUES (12, '4', '*вопрос 1', '1', '');
INSERT INTO `bilets` VALUES (13, '4', '*вопрос 2', '2', '');
INSERT INTO `bilets` VALUES (14, '4', '*вопрос 3', '3', '');
INSERT INTO `bilets` VALUES (15, '4', '*вопрос 4', '4', '');

CREATE TABLE `var_otv` (
  `id` int(100) NOT NULL auto_increment,
  `vopros` varchar(255) NOT NULL,
  `n_otv` varchar(10) NOT NULL,
  `v_otv` varchar(255) default NULL,
  `glava` int(15) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=0 ;

-- Дамп данных таблицы `var_otv`
INSERT INTO `var_otv` VALUES (1, '1', '1', '*ответ 1  на **вопрос 1', 1);
INSERT INTO `var_otv` VALUES (2, '1', '2', '*ответ 2  на **вопрос 1', 1);
INSERT INTO `var_otv` VALUES (3, '1', '3', ' ответ 3  на   вопрос 1', 1);
INSERT INTO `var_otv` VALUES (4, '2', '1', ' ответ 1  на **вопрос 2', 2);
INSERT INTO `var_otv` VALUES (5, '2', '2', ' ответ 2  на **вопрос 2', 2);
INSERT INTO `var_otv` VALUES (6, '2', '3', ' ответ 3  на **вопрос 2', 2);
INSERT INTO `var_otv` VALUES (7, '2', '4', '*ответ 4  на **вопрос 2', 2);
INSERT INTO `var_otv` VALUES (8, '3', '1', '*ответ 1  на **вопрос 3', 3);
INSERT INTO `var_otv` VALUES (9, '3', '2', '*ответ 2  на **вопрос 3', 3);
INSERT INTO `var_otv` VALUES (10, '3', '3', 'ответ 3  на **вопрос 3', 3);
INSERT INTO `var_otv` VALUES (11, '3', '4', 'ответ 4  на **вопрос 3', 3);

CREATE TABLE `glava` (
  `id` int(25) NOT NULL default '0',
  `title_glava` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

-- Дамп данных таблицы `glava`

INSERT INTO `glava` VALUES (1, '*Тесты  глава 1');
INSERT INTO `glava` VALUES (2, 'Тесты  глава 2');
INSERT INTO `glava` VALUES (3, 'Тесты  глава 3');
INSERT INTO `glava` VALUES (4, 'Тесты  глава 4');
INSERT INTO `glava` VALUES (5, 'Тесты  глава 5');

помогите пожалуйста как лучше сделать табдицу.
Вся сложность в вариантах ответов, их можнт быть от 1 до 10

Щас нарисую нужные связи
 
Вот картинка всех таблиц

схема связей..

Но у меня не работает от чего то
 

Вложения

  • 03.10.png
    03.10.png
    104,9 KB · Просмотры: 12
Честно говоря не очень понятно, что вы хотите получить на выходе. Напишите четко по шагам, что нужно сделать.
 
ну логично было бы первую таблицу(билетов) сделать такую:
№вопроса|текст вопроса| № билета|№главы|№правильного ответа
2я таблица(главы:(
№главы|название главы|описание главы
3я таблица(ответы)
№ответа|текст ответа|№вопроса
 
ну логично было бы первую таблицу(билетов) сделать такую:
№вопроса|текст вопроса| № билета|№главы|№правильного ответа
2я таблица(главы:(
№главы|название главы|описание главы
3я таблица(ответы)
№ответа|текст ответа|№вопроса
dino, Смотрите
у меня так и сделано
ну логично было бы первую таблицу(билетов) сделать такую:
№вопроса |№главы |текст вопроса| № билета|№правильного ответа
2я таблица(главы:(
№главы|название главы|описание главы
3я таблица(ответы)
№ответа|текст ответа|№вопроса
проблема в том что ответов может быть один -9.
Добавлено через 4 минуты
Честно говоря не очень понятно, что вы хотите получить на выходе. Напишите четко по шагам, что нужно сделать.
по шагам, мне надо чтобы каджому билету соотвествовали
оветы из талицы ответов.
Не пойцму почему не удается связать, где то накосячил видимо.
вот Типа такого надо но одним (SELECT om )
PHP:
$sql = mysql_query("SELECT   bilets.*,glava.*  FROM   bilets, glava WHERE glava.id= bilets.glava and  glava.id='1'   and  bilets.var='1' ");
 if(mysql_num_rows($sql) >0) {
 while($r  = mysql_fetch_array($sql)) {
  echo  ' </b>вопрос <b> '. $r["vopros"]   ;
   echo'<hr>';   }  }
 $sql2 = mysql_query("SELECT   *  FROM    var_otv,glava  WHERE  glava.id= var_otv.glava and  glava.id='1'     and vopros='1'    ");
       if(mysql_num_rows($sql2) >0) {
 while($r2  = mysql_fetch_array($sql2)) {
 //echo $vop  ='Вопрос №<b>'.$r2["vopros"] .'</b><br />';
echo $rvot  =  '</b> Ответ  №<b>     '. $r2["v_otv"] .'</b><br />' ;
}}
 
на таблице вопросов не надо было использовать var, а на табл.ответов glava. Все связывалься бы одним id. На вопросах ид-главы, а на ответах ид-вопросов...
 
Назад
Сверху