![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie ponownie,
Wszystkie kursy które studiuje mówią o pobieraniu danych za pomocą query ale tylko w przypadku jednej tabeli. Co w przypadku gdy muszę pobrać z większej ilości miejsc dane ale wciąż muszę zastosować pętle while ? mam fragment kodu który wymaga powtórzenia w pętli Kod <div class="cbp-item KATEGORIA"> <div class="cbp-caption"> <div class="cbp-caption-defaultWrap"> <img src="img/works/ZDJECIE.jpg" alt=""/> </div> <div class="cbp-caption-activeWrap"> <div class="th-detail"> <div class="cbp-l-caption-alignCenter"> <div class="cbp-l-caption-body"> <div class="cbp-l-grid-projects-title">TYTUŁ</div> <a href="projects/project1.php" class="cbp-singlePage cbp-l-caption-buttonLeft">więcej</a> <a href="img/works/helios1.jpg" class="cbp-lightbox cbp-l-caption-buttonRight" data-title="TYTUŁ<br>OPIS">powiększ</a> </div> </div> </div> </div> </div> </div> KATEGORIA - parametr pobierany z tabeli category ZDJĘCIE - parametr pobierany z tabeli gallery TYTUŁ - parametr pobierany z tabeli title OPIS - parametr pobierany z tabeli project Wszystkie 4 tabele są powiązane ze sobą za pomocą id tabeli kategoria - jednak nie są zrobione relacje w bazie danych. Za pomocą JOINA jestem w stanie połączyć się z dwiema tabelami naraz i wyświetlić dla nich wspólne cechy dla danego połączenia. Jak zatem wykonać takie zapytanie do 4 lub większej ilości tabel, lub jak to zrobić inaczej tak żeby było zrobione zgodnie ze sztuką ? Próbowałem bawić się z relacjami many to many ale napotkałem na kłopoty z powiązaniami. Czy ktoś podpowie jak to zrealizować poprawnie ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Za pomocą JOINA jestem w stanie połączyć się z dwiema tabelami naraz i wyświetlić dla nich wspólne cechy dla danego połączenia. Nie. Za pomoca JOIN mozesz polaczyc sie z dowolna iloscia tabel a nie tylko dwoma. JOIN mozna uzywac wielokrotnie w jednym zapytaniu i laczyc ze soba kolejne pary tabel
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli takie rozwiązanie multiple JOIN pomoże mi zrealizować powyższe zadanie ?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Moze. Choc osobiscie polecam poczytac o roznicach miedzy JOIN a LEFT JOIN bo mozesz sie przejechac
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za pomoc, udało mi się osiągnąć to co zamierzałem za pomocą:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Miej tylko na uwadze, ze z INNER JOIN, jak nie bedzie istnial jakis wpis w JOINowanej tabeli, to cale zapytanie nic ci nie zwroci.
Przy LEFT JOIN zwroci wszystko procz danych z tabeli, gdzie nie istnieje zlaczenie. Czesto sie to spotyka wlasnie w galeriach, gdzie masz jakis np. produkt, ktory jeszcze nie ma zdjec. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie spotkalem sie z problemem ze wyswietla mi podwojnie dane
![]() Ciężko to ogarnąć na samym początku przygód |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No jesli tabela zlaczana ma kilka rekordow dla rekordu dolaczanego to tak, dane sie beda powtarzac - dosc logiczne
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A da się to jakoś wykluczyć ? Bo dodając kolejne wpisy w bazie rzeczy zaczynają mi się multiplikować
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Albo musisz grupowac (GROUP BY) i laczyc dane na poziomie mysql
Albo w php obrabiac te dane zanim zaczniesz wyswietlac. Ja zazwyczaj robie to drugie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czy mogę prosić o szczegóły obróbki tych danych w PHP ?
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 04:16 |