Старый 26.05.2011, 18:13   #1   
Жизнелюб
 
Аватар для Wertel
 
Сообщений: 1,406
Регистрация: 23.09.2006
Возраст: 33

Wertel вне форума Не в сети
связывание одной таблицы с другой в запросе

Ищу решение одной проблемы, связанной с разработкой информационной системы дистанционного обучения.
Допустим, на одной странице есть список курсов. При нажатии на ссылку курса появляется список уроков этого курса, ну и далее - сам урок. Проблема в том, что при переходе на второй, третий и т.д. курсы открывается всё тот же список уроков первого курса. А для примера у меня имеются только уроки первого курса. Так как устранить эту проблему? Есть мысль в БД, в таблице с уроками создать поле course_id, но как его связать с таблицей курсов? или наоборот. То есть надо, чтобы при переходе на все курсы, кроме первого появлялась ожидаемая ошибка, сообщающая об отсутствии страницы.

привожу код своего запроса, он и выводит на странице ссылки на курсы с описанием:

Код:
$result = mysql_query ("SELECT id,title,description,date,lessons_id FROM course", $db); 
$myrow = mysql_fetch_array($result); 
                  
do 
 { 
  printf (" 
          <table align='center' class='lesson'> 
          <tr> 
          <td class='lesson_title'><p class='lesson_name'><a href='view_course.php?id=%s&lessons_id=%s'>%s</a></p> 
          <p class='lesson_adds'>Дата добавления: %s</p> 
          </tr> 
          <tr> 
          <td>%s</td> 
          </tr> 
          </table><br><br>", $myrow["id"],$myrow["lessons_id"],$myrow["title"],$myrow["date"],$myrow["description"]); 
 } 
while ($myrow = mysql_fetch_array($result));
  Ответить с цитированием
Старый 26.05.2011, 19:08   #2   
Форумец
 
Аватар для Spectator
 
Сообщений: 39,857
Регистрация: 27.05.2003
Возраст: 46

Spectator вне форума Не в сети
WHERE вообще
http://www.ageent.ru/sql-where
Связывание таблиц конкретно
http://www.compress.ru/Archive/CP/2000/10/10/index1.htm

P.S. Вясна, студенты расцвели))))
P.P.S. Совершенно случайно на эту тему наткнулся, тебе бы лучше в программирование перенестись
http://bvf.ru/forum/forumdisplay.php?f=30
  Ответить с цитированием
Старый 26.05.2011, 19:44   #3   
Жизнелюб
 
Аватар для Wertel
 
Сообщений: 1,406
Регистрация: 23.09.2006
Возраст: 33

Wertel вне форума Не в сети
Spectator, да я читал про это. Значит, мне нужно не свзяывание, т.к. связывание с массивом не работает по вполне понятным причинам.
  Ответить с цитированием
Старый 26.05.2011, 20:02   #4   
highly mean
 
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35

silly вне форума Не в сети
Сначала нужно разобраться с отношениями один-к-одному, многие-к-одному, многие-ко-многим в схеме БД. В данном случае (что уже подмечено ТС): из таблицы course выбросить lessons_id, в таблицу lesson добавить course_id.
  Ответить с цитированием
Старый 26.05.2011, 20:22   #5   
Жизнелюб
 
Аватар для Wertel
 
Сообщений: 1,406
Регистрация: 23.09.2006
Возраст: 33

Wertel вне форума Не в сети
фух, оказывается всё гораздо проще. Надо было в ссылке на курс передать только параметр id курса, а на странице списка уроков курса принять его из $_GET и выбрать уроки только с course_id = переданный id (у меня в БД, в таблице уроков есть это поле, которое должно соответствовать полю номера курса).
Мда, мне ещё пилить и пилить, чтоб такие мелочи сразу замечать. Ещё б теперь тест прикрутить.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind