![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
dajmy na to mam takie przykładowe tabele: (IMG:http://img812.imageshack.us/img812/8028/tables.png) Każdy film może mieć wielu aktorów. Chciałbym wyświetlić spis filmów z grającymi w nich aktorami. Czy ktoś mi podpowie jak powinienem to zrobić (PHP + MySQL) ? pozdrawiam (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Dla każdego filmu oddzielnie pobrać aktorów
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@wookieb wg. Twojego sposobu będzie więc tyle dodatkowych zapytań ile będzie filmów.
A to można jednym zapytaniem zrobić: http://nospor.pl/grupowanie-wynikow.html |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
ale w moim przykładzie jest relacja wiele do wielu, tzn. film posiada więcej niż jednego aktora i aktor posiada więcej niż jeden film. To chyba jednym zapytaniem tego ładnie nie pobiorę właśnie ...
Ale myślałem, żeby pobrać najpierw wybrane filmy, a później zrobić zapytanie, które pobierze mi aktorów, którzy grali w pobranych przeze mnie filmach:
gdzie 1,2,3,... to id filmów które wyświetlam. To by mi pobrało wszystkich aktorów związanych z tymi filmami. Co myślicie? Poza tym film, film miałby więcej takich powiązań, np. może mieć wielu reżyserów, itd. Także wychodziło by dla każdego powiązania dodatkowe zapytanie. Ale chyba krócej tego nie zrobię ? Ten post edytował marekc12 16.08.2010, 10:55:38 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ale w moim przykładzie jest relacja wiele do wielu, tzn. film posiada więcej niż jednego aktora i aktor posiada więcej niż jeden film. To chyba jednym zapytaniem tego ładnie nie pobiorę właśnie ... To, że w przykladzie pokazałem jak pobrać dane z dwoch tabel nie oznacza, ze nie mozesz ich pobrac z trzech... Idea jest ta sama. Jedyne co musisz zrobic to o jednego więcej LEFT JOIN.Cytat Ale myślałem, żeby pobrać najpierw wybrane filmy, a później zrobić zapytanie, które pobierze mi aktorów, którzy grali w pobranych przeze mnie filmach: Tez moze byc.[SQL] pobierz, plaintext SELECT a.name, fa.film_id FROM actor AS a, film_actor AS fa WHERE fa.actor_id = a.id AND (fa.film_id = 1 OR fa.film_id = 2 OR fa.film_id = 3 OR ..... ) gdzie 1,2,3,... to id filmów które wyświetlam. To by mi pobrało wszystkich aktorów związanych z tymi filmami. Co myślicie? Tylko zamiast: fa.film_id = 1 OR fa.film_id = 2 OR fa.film_id = 3 OR ..... zrob poprostu fa.film_id in (1,2,3......) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Ale pomyślę nad tym LEFT JOIN, bo chciałem się nauczyć pobierać te dane w najlepszy sposób.
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Z drugiej strony, jeśli będziesz korzystał ze stronicowania tych filmów, to jednak to co zaproponowales może okazać się lepsze.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
No teraz chyba też tak myślę. Teraz będę myślał jak obsłużyć takie tabelki w Symfony. Pomęczę się sam, jak nie zrobię to już będę pytał na subforum frameworkowym.
pozdrawiam (IMG:style_emoticons/default/smile.gif) Ten post edytował marekc12 16.08.2010, 12:04:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:38 |