![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam baze z filmami w niej tabele FILMY z tytulami,aktorami,itd oraz inna tabele AKTORZY a w niej imie i nazwisko aktora teraz dodajac film do bazy wymyslilem ze do tabeli FILMY nie bede dopisywal aktorow tylko ich ID w tabeli AKTORZY jesli w jednym filmie gra wiecej aktorow to musze wpisac pare ID do pola w tabeli wiec wymyslilem ze pole aktorzy w tabeli FILMY to CHAR i ID aktorow bede rozdzielal przecinkiem np: 2,4,14 i tu zaczyna sie problem bo jesli pozniej bede chcial wyszukac film z jakims tam aktorem o ID 1 i zadam zapytanie do bazy to przeciez wywali mi tez te z aktorami np: 2,4,14 bo w tym tez znajduje sie 1 Czy jest jakis typ danych ktory pozwala na wpisanie wiekszej ilosci INT rozdzielonych jakims separatorem? A moze jakis inny pomysl jak rozwiazac ten problem? Inna rzecz na jaka wpadlem to to zeby do kazdego filmu tworzyc nastepna mala tabelke z ID aktorow ktorzy w nim graja w w polu aktorzy w tabeli FILMY tylko nazwe tej tabeli Ale teraz jesli bede szukal filmow z aktorem x to najpierw sprawdze jego ID w tabeli AKTORZY pozniej bede musial przeszukac wszystkie tabelki z aktorami grajacymi w filmach i tu zaczyna sie problem bo nie wiem czy jest mozliwosc zadania zapytania do bazy cos w stylu : ZNAJDZ MI TABELE GDZIE POLE JAK 'x' ![]() mysle ze nie wiec bede musial wydac wszystkie nazwy tabel bo beda one lgenerowane losowo i przeszukac kazda z nich wydaje mi sie ze to troche robota na okolo Prosze naprowadzic mnie na jakies sensowne rozwiazanie bo troche sie zakrecilem i stoje w miejscu ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
TYpowa relacja n->m.
Zalatwia sie to trzecia tabela w ktorej masz id_filmu i id_aktora Np: filmy: Kod 1 | terminator
2 | conan aktorzy: Kod 1 | arnold
2 | wrenek tablica laczaca: Kod aktor | film
1 | 1 1 | 2 2 | 2 oznacza ze arnold gral w terminatorze i conanie a wrenek tylko w conanie ale za to razem z arnoldem zapytania: kto gral w conanie ? [sql:1:0ecff77740] select aktor from aktorzy, laczaca, filmy where aktorzy.id = laczaca.id_aktora and laczaca.id_filmu = filmy.id and film='conan' [/sql:1:0ecff77740] gdzie gral arnold ? [sql:1:0ecff77740] select film from aktorzy, laczaca, filmy where aktorzy.id = laczaca.id_aktora and laczaca.id_filmu = filmy.id and aktor='arnold' [/sql:1:0ecff77740] PS. admini: zalozcie moze w podswietlaniu ze slowo kluczowe to <znakbialy>slowo_kluczowe<znakbialy>, co ? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 0 Dołączył: 4.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki stokrotne teraz to juz z gorki.Dzieki
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Jak juz jestesmy przy tym to tez mam pytanie. Na tym przykladzie z filmami, jakbym chcial pobrac tytul filmu i ew. jeszcze jakies dane z tabeli z filmami i do tego wszystkich aktorow grajacych w tym filmie.
Czy da sie to zrobic jednym zapytaniem?? Dwoma to sprawa prosta, aktorow pobieramy osobno podajac id filmu i po klopocie, ale jak w jednym to gorzej, bo nigdy nie wiadomo ile aktorow gralo w danym filmie i trzeba by wyciagnac tablice jakas czy co... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Owszem mozna to zrobic jednym zapytaniem, z tym ze dostaniesz informacje o filmie powielone o ilosc wystepujacych aktorow. Zapytanie takie jak podalem, dodajesz tylko interesujace ci kolumny.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie... dzieki.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:53 |