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

Форум MySQL

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

 

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

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

тема: Как вывести все заметки из категории с помощью вспомогательной таблицы?
 
 автор: Grends   (11.12.2011 в 21:15)   письмо автору
 
 

Подскажите пожалуйста, как мне вывести все заметки относящиеся к определённой категории используя третью вспомогательную таблицу? И скажите правильно ли я сделал выборку всех категории относящихся к определённой заметке? Вот код:

// Запрос на вывод номера категории!
$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);
или можно как-то подругому более грамотно?

  Ответить  
 
 автор: cheops   (12.12.2011 в 17:15)   письмо автору
 
   для: Grends   (11.12.2011 в 21:15)
 

Довольно сложно воспринимать код, не имея перед глазами структуру ваших таблиц.

  Ответить  
 
 автор: Grends   (12.12.2011 в 20:14)   письмо автору
 
   для: cheops   (12.12.2011 в 17:15)
 

У меня есть 3 таблицы. 1 таблица о заметках с полем id, 2 таблица с категориями с полем id, 3 таблица связывающая с 2 полями: 1 поле это id заметки, 2 поле это id категории.

  Ответить  
 
 автор: cheops   (12.12.2011 в 20:54)   письмо автору
 
   для: Grends   (12.12.2011 в 20:14)
 

Правильно ли я понимаю, что первая таблица называется categories, вторая filmscat? Кстати, как называется третья таблица?

  Ответить  
 
 автор: Grends   (12.12.2011 в 21:05)   письмо автору
 
   для: cheops   (12.12.2011 в 20:54)
 

Нет. 1 таблица называется films, 2 categories, а 3 filmscat

  Ответить  
 
 автор: cheops   (12.12.2011 в 21:25)   письмо автору
 
   для: Grends   (12.12.2011 в 21:05)
 

Хм... пока не очень понятно, как связана таблицы, но запрос должен выглядеть примерно так (только нужно подставить нужные связи таблиц)
SELECT
  films.*
FROM
  films
LEFT JOIN
  filmscat
ON
  films.id = filmscat.id
WHERE
  filmscat.id_cat = $id_cat

  Ответить  
 
 автор: Grends   (12.12.2011 в 23:04)   письмо автору
 
   для: cheops   (12.12.2011 в 21:25)
 

Спасибо, я смог разобраться. Благадарю за конструкцию LEFT JOIN.

  Ответить  
Rambler's Top100
вверх

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