Ищу решение одной проблемы, связанной с разработкой информационной системы дистанционного обучения.
Допустим, на одной странице есть список курсов. При нажатии на ссылку курса появляется список уроков этого курса, ну и далее - сам урок. Проблема в том, что при переходе на второй, третий и т.д. курсы открывается всё тот же список уроков первого курса. А для примера у меня имеются только уроки первого курса. Так как устранить эту проблему? Есть мысль в БД, в таблице с уроками создать поле 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));
[Ответ]
Spectator, да я читал про это. Значит, мне нужно не свзяывание, т.к. связывание с массивом не работает по вполне понятным причинам.
[Ответ]
Сначала нужно разобраться с отношениями один-к-одному, многие-к-одному, многие-ко-многим в схеме БД. В данном случае (что уже подмечено ТС): из таблицы course выбросить lessons_id, в таблицу lesson добавить course_id.
[Ответ]
фух, оказывается всё гораздо проще. Надо было в ссылке на курс передать только параметр id курса, а на странице списка уроков курса принять его из $_GET и выбрать уроки только с course_id = переданный id (у меня в БД, в таблице уроков есть это поле, которое должно соответствовать полю номера курса).
Мда, мне ещё пилить и пилить, чтоб такие мелочи сразу замечать. Ещё б теперь тест прикрутить.
[Ответ]