ďťż

[mysql]łączenie tablic

       

Podstrony


telcocafe

Mam dwie tabele w bazie danych : utwory i medium.Tabela utwory zawiera pola:idutworu,tytul,dlugosc,rodzajmuzyki,idmedium , tabela medium : idmedium,rokwydania,iloscutworow,wykonawca,produkt.
Czy po wpisaniu zapytania : $sql="SELECT * FROM `utwory,medium` WHERE `tytul` LIKE '%$tytul%'
AND `rokwydania` LIKE '%$rokwydania%' .... wyświetli mi wszystko co znajduje sie pod pozycją idutworu??Chodzi o to że np dla idutworu=1 są wpisane dane do pozostałych pól.Wyszukanie polega na wpisaniu wartości do dowolnego pola w formularzu,a wynik szukania ma zawierać wszystkie dane.Prosze o podanie prawidłowej składni zapytania.Z góry dziękuje



Nie wiem czy dobrze zrozumiałem, ale:

$sql='SELECT * FROM utwory, medium WHERE utwory.tytul LIKE "%'.$tytul.'%" AND medium.rokwydania LIKE "%'.$rokwydania.'%" AND medium.idmedium = utwory.idmedium';
??

Niestety nadal nie działa.Gdy np w jedno pole wpisze słowo do wyszukania,to prawidłowo znajduje dane z tabeli, której dane słowo należy np jeżeli wpisze w wyszukiwarce tylko tytuł to prawidłowo mi znajdzie tytuł , długość ,rodzaj muzyki ,natomiast rok wydania ilosc utworow wykonawce i produkt wyświetla z całej bazy.


Mam dwie tabele w bazie danych : utwory i medium.Tabela utwory zawiera pola:idutworu,tytul,dlugosc,rodzajmuzyki,idmedium , tabela medium : idmedium,rokwydania,iloscutworow,wykonawca,produkt.
Czy po wpisaniu zapytania : $sql="SELECT * FROM `utwory,medium` WHERE `tytul` LIKE '%$tytul%'
AND `rokwydania` LIKE '%$rokwydania%' .... wyświetli mi wszystko co znajduje sie pod pozycją idutworu??Chodzi o to że np dla idutworu=1 są wpisane dane do pozostałych pól.Wyszukanie polega na wpisaniu wartości do dowolnego pola w formularzu,a wynik szukania ma zawierać wszystkie dane.Prosze o podanie prawidłowej składni zapytania.Z góry dziękuje



Podam przykład to może będzie troche jaśniej.W sumie nie wiem czy mogą tak być i potrzebne są pola id_medium.Załóżmy że w tabelach mamy :
tabela utwory:
idutworu tytul dlugosc rodzajmuzyki idmedium
1 The Big Bang 74 pop 1
2 Dewiacje na wakacje 65 pop 2
3 Dotyk 83 dance 3
4 Ready to Fly 57 jazz 4
5 Sensi 77 rap 5
6 Najlepsze hiciory Vol.1 59 rap 6
7 Da Capo 64 dance 7
8 Flowers 70 dance 8
9 Dedicated 78 techno 9
10 Szklanka wody 76 rock 10
tabela medium

idmedium rokwydania iloscutworow wykonawca produkt
1 1999 19 Busta Rhymes płyta
2 2004 16 Sztywny Pal Azji płyta
3 2005 17 Edyta Górniak płyta
4 2001 19 U2 kaseta
5 2000 20 Police kaseta
6 2001 15 Scorpions płyta
7 1998 16 Tina Tuner kaseta
8 1999 14 Madonna płyta
9 2003 17 Ace of Base kaseta
10 2005 18 Bajm płyta

Wyszukiwarka zawiera pola:tytuł,długość,rodzaj muzyki,rok wydania ilość utworów,wykonawca,produkt.Wpisuje w polu tytuł :dotyk a pozostałe pola zostawiam puste i wynik wyszukania ma być następujący:
Dotyk 83 dance 2005 17 Edyta Górniak płyta

lub np w polu produkt wpisuje kaseta i otrzymuje wynik:

Ready to Fly 57 jazz 2001 19 U2 kaseta
Sensi 77 rap 2000 20 Police kaseta
Da Capo 64 dance 1998 16 Tina Tuner kaseta
Dedicated 78 techno 2003 17 Ace of Base kaseta

Prosze o pomoc w utworzeniu odpowiedniego zapytania sql i ewentualnej poprawy tabel

Hmm... to może dla odpowiednich opcji zastosować różne zapytania MySQL ?

Jeśli np. użytkownik wypełni tylko pole tytuł wtedy takie zapytanie:

SELECT * FROM utwory AS u, medium AS m WHERE u.tytul LIKE '%$tytul%' AND u.idmedium = m.idmedium;

A jak wypełni inne pole to tylko zmieniać

fragment:

u.tytul LIKE '%$tytul%'

Najlepiej zbudować funkcję ,która na podstawie danych z formularza i znajdujących się w nim wartości zbuduje odpowiedni fragment kodu i złączy go z resztą zapytania...

Dla każdego pola odpowiednia opcja to chyba nie bardzo,bo to oznacza 6 zapytań.A co w przypadku uzupełnienia 2 ,3,4,5 pól?Myśle że napewno istnieje jakieś ogólne zapytanie,które spowoduje poprawne działanie.


Dla każdego pola odpowiednia opcja to chyba nie bardzo,bo to oznacza 6 zapytań.A co w przypadku uzupełnienia 2 ,3,4,5 pól?Myśle że napewno istnieje jakieś ogólne zapytanie,które spowoduje poprawne działanie.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.