есть 2 таблицы фильма(movies) и роли в фильме(roles)
структура movies:
id, title
структура roles
movie - айди фильма
actor - айди актера, игравшего роль в этом фильме
вопрос - нужно вытащить все фильмы, где играют роль 2 определенных актера(например актер - айди 1 и айди 2)
есть запрос, который выводить все фильмы 2 этих актеров
SELECT `title` FROM `roles` LEFT JOIN `movies` ON `roles`.`movie`=`movies`.`id` WHERE `actor` IN(1,2)
а мне нужно, что бы он выводил только те фильмы, в которых играют роль оба актера???
поставим другую задачу!
есть 3 таблицы:
1-я фильмы ( поля id,title и т.д )
2-я актеры ( поля id,name и т.д )
3-я роли в фильмах (поля id_movie, id_actor) - это для связки фильмов и актеров
Мы зашли на страницу актера, например айди 1, вывели его фильмы - это просто)
Теперь мне надо вывести на этой же страницы всех актеров, которые играли роли вместе с этим актером (айди 1) в одном фильме, и подсчитать количество общих фильмов по каждому актеру!
Пример: станица актера - айди 1
он играл роль с актером - айди 2 (количество общих фильмов - 1)
он играл роль с актером - айди 6 (количество общих фильмов - 2)
он играл роль с актером - айди 8 (количество общих фильмов - 2)
он играл роль с актером - айди 9 (количество общих фильмов - 3)
он играл роль с актером - айди 84 (количество общих фильмов - 1)
выборку делаю в таблицы роли (получаю количество айди актеров и количество общих фильмов по каждому актеру), а выводить информацию об актерах мне уже надо с таблицы актеры, как с этим быть???
и нужно вывести всю инфу по этим айдишникам и добавить каждому айдишнику поле => 'что-то' при выводе! как это реализовать? 2-й вариант уже не сработает(
amf1k первый вариант - правильный. Подробности OrmaJever рассказал.
а если мне "просто" нужно вывести инфу с БД по id ??? (Добавление)
OrmaJever пишет:
Функция должна быть независима, она должна принимать какой-то параметр (число или строку) и ничего не знать откуда это значение берётся. Если же она будет жёстко привязана к ГЕТ параметру с определённым ключём то это не будет хорошо, потому что на одной странице id берётся из $_GET['id'], на другой из $_POST['id'], а на трейтей из бд $row['id'].
с этим все ясно, спасибо)
2-й вопрос:
пришел массив айдишников с формы
я не говорю, что она не понятная, я говорю, что она плохая!
Правильней было бы сделать как то так:
1-я таблица - kino: id, title
2-я таблица - actor: id, name
3-я таблиц - roli: id, kino_id, actor_id
а у меня как? вы написали такую же структуру таблиц как и у меня, где разница???
разница в том, связывать проще будет название фильма и имя актера, чем id фильма и id актера, ведь для этого не нужно искать под каким id фильм и под каким id актер, ведь я прав?)
exlant пишет:
А у вас все в третьей таблице, есть и название фильмов, и актеров, и вообще не понятно, зачем первая и вторая тогда таблицы...
1-я таблица - там хранится вся инфа о фильме
2-я таблица - там хранится все инфа об актере
3-я таблица будет связывать фильм и актеров, которые играют роль в этом фильме
[quote=exlant][/quote]
да структура самая понятная какая может быть)
ваш запрос выводить все фильмы васи и пети в дублированном виде по несколько раз, так что он не верный!
С чего это? Как Я понял записи в таком виде
Фильм1 Вася
Фильм2 Вася
Фильм1 Петя
И как запрос опа выберет Фильм1? (Добавление)
И вообще как поле может иметь сразу два значения? Запрос опа в принципе не корректен
Вот 3 таблицы:
1-я таблица фильмы
id,title (название фильма)
2-я таблица актеры
id,name (имя актера)
3-я таблица роли (то есть, фильм и актеры. которые играют роль в этом фильме)
title (название фильма), actor (актер, который играет роль в этом фильме)
Вопрос тот же?
есть таблица в БД "kino"
2 поля: название фильма "title" и актер играющий роль "actor"
нужно выбрать все фильмы где играют роль определенные 2 актера вместе
вот мой запрос, он конечно не работает(
SELECT `title` FROM `kino` WHERE `actor`="Вася" AND `actor`="Петя"
помогите исправить запрос?
Вопрос: Можно ли так применять параметры к функции (NULL), если нет, то почему???
Если честно, то код работает, но что то мне подсказывает, что этот код не имеет права на жизнь?