|
|
|
| Подскажите пожалуйста, как мне вывести все заметки относящиеся к определённой категории используя третью вспомогательную таблицу? И скажите правильно ли я сделал выборку всех категории относящихся к определённой заметке? Вот код:
// Запрос на вывод номера категории!
$result2 = mysql_query("SELECT id_cat FROM filmscat WHERE id_film='$id'",$db);
$myrow2 = mysql_fetch_array($result2);
$result3 = mysql_query("SELECT id_cat FROM filmscat WHERE id_film='$id' AND id_cat!='$myrow2[id_cat]'",$db);
$myrow3 = mysql_fetch_array($result3);
if (isset($myrow3['id_cat'])){
$result4 = mysql_query("SELECT id_cat FROM filmscat WHERE id_film='$id' AND id_cat!='$myrow2[id_cat]' AND id_cat!='$myrow3[id_cat]'",$db);
$myrow4 = mysql_fetch_array($result4);}
if (isset($myrow4['id_cat'])){
$result5 = mysql_query("SELECT id_cat FROM filmscat WHERE id_film='$id' AND id_cat!='$myrow2[id_cat]' AND id_cat!='$myrow3[id_cat]' AND id_cat!='$myrow4[id_cat]'",$db);
$myrow5 = mysql_fetch_array($result5);}
// Запрос на вывод названия категории!
$result6 = mysql_query("SELECT title FROM categories WHERE id='$myrow2[id_cat]'",$db);
$myrow6 = mysql_fetch_array($result6);
$result7 = mysql_query("SELECT title FROM categories WHERE id='$myrow3[id_cat]'",$db);
$myrow7 = mysql_fetch_array($result7);
if (isset($myrow4['id_cat'])){
$result8 = mysql_query("SELECT title FROM categories WHERE id='$myrow4[id_cat]'",$db);
$myrow8 = mysql_fetch_array($result8);}
if (isset($myrow5['id_cat'])){
$result9 = mysql_query("SELECT title FROM categories WHERE id='$myrow5[id_cat]'",$db);
| или можно как-то подругому более грамотно? | |
|
|
|
|
|
|
|
для: Grends
(11.12.2011 в 21:15)
| | Довольно сложно воспринимать код, не имея перед глазами структуру ваших таблиц. | |
|
|
|
|
|
|
|
для: cheops
(12.12.2011 в 17:15)
| | У меня есть 3 таблицы. 1 таблица о заметках с полем id, 2 таблица с категориями с полем id, 3 таблица связывающая с 2 полями: 1 поле это id заметки, 2 поле это id категории. | |
|
|
|
|
|
|
|
для: Grends
(12.12.2011 в 20:14)
| | Правильно ли я понимаю, что первая таблица называется categories, вторая filmscat? Кстати, как называется третья таблица? | |
|
|
|
|
|
|
|
для: cheops
(12.12.2011 в 20:54)
| | Нет. 1 таблица называется films, 2 categories, а 3 filmscat | |
|
|
|
|
|
|
|
для: Grends
(12.12.2011 в 21:05)
| | Хм... пока не очень понятно, как связана таблицы, но запрос должен выглядеть примерно так (только нужно подставить нужные связи таблиц)
SELECT
films.*
FROM
films
LEFT JOIN
filmscat
ON
films.id = filmscat.id
WHERE
filmscat.id_cat = $id_cat
|
| |
|
|
|
|
|
|
|
для: cheops
(12.12.2011 в 21:25)
| | Спасибо, я смог разобраться. Благадарю за конструкцию LEFT JOIN. | |
|
|
|