Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie jednego zdjęcia z innej tabeli przy złączeniu
boomer
post 6.03.2008, 19:34:06
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 27.07.2007

Ostrzeżenie: (0%)
-----


Witam

Mam dwie tabele. W jednej przechowuję nazwy budynków, w drugiej przechowuję ich zdjęcia.
W pierwszej ważne kolumny to:
placeID - klucz główny pierwszej tabeli
nazwa - nazwa budynku
opis - opis budynku

Druga tabela:
photoID - klucz główny
placeID - klucz obcy
nazwa_pliku - lokalizacja pliku ze zdjeciem

Silnik InnoDB

Pobieram dane zapytaniem (akceptacja służy do tego, że zdjecia i budynki musza byc najpierw zaakceptowane przez admina, $start, $stop to zakres budynków na stronie):

  1. <?php
  2. $sql = "select ciekawe_miejsca.nazwa, ciekawe_miejsca.opis, ciekawe_miejsca_zdjecia
    .file
  3. name from ciekawe_miejsca, ciekawe_miejsca_zdjecia
  4. where ciekawe_miejsca.gmina =$region and ciekawe_miejsca.placeID = ciekawe_
  5. iejsca_zdjecia.placeID and ciekawe_miejsca_zdjecia.akceptacja =1
  6. and ciekawe_miejsca.akceptacja =1 limit $start , $stop";
  7. ?>


Wadą tego jest, że wyswietla mi tyle razy budynek ile mam zdjec dla niego - oczywiscie jest to zgodne z zapytaniem, ktore wykonalem.
Moim celem jest aby dla kazdego budynku wyswietlic jedno zdjecie, nie zadajac przy tym dwoch zapytan.
Prosze Was o radę w jakim kierunku pojsc. Czy zrobić zapytanie w zapytaniu, czy w jakiś inny sposób to rozwiąć?
Pozdrawiam
Mario

Ten post edytował boomer 6.03.2008, 20:41:55
Go to the top of the page
+Quote Post
woj_tas
post 6.03.2008, 21:04:36
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 36
Dołączył: 31.03.2006
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Jeżeli dobrze zrozumiałem to musisz złączyć dwie tabele przez left join oraz pogrupować po ciekawe_miejsca.placeID. Spróbuj tak:

  1. SELECT
  2. ciekawe_miejsca.nazwa,
  3. ciekawe_miejsca.opis,
  4. ciekawe_miejsca_zdjecia.file name
  5. FROM ciekawe_miejsca LEFT JOIN ciekawe_miejsca_zdjecia ON ciekawe_miejsca_zdjecia.placeID=ciekawe_miejsca.placeID
  6. WHERE ciekawe_miejsca.gmina = '$region' AND ciekawe_miejsca_zdjecia.akceptacja =1 AND ciekawe_miejsca.akceptacja =1
  7. GROUP BY ciekawe_miejsca.placeID
  8. LIMIT $start , $stop


Ten post edytował woj_tas 6.03.2008, 21:05:23


--------------------
Go to the top of the page
+Quote Post
boomer
post 10.03.2008, 20:05:52
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 27.07.2007

Ostrzeżenie: (0%)
-----


dzięki wielkie. zadziałało. Już wciskam pomógł.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 20:45