Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] kłopot z wyszukiwaniem w 3 tabelach jednocześnie
Forum PHP.pl > Forum > Przedszkole
neverever
mam 3 tabele...

tabela1:
id, nazwa

tabela2:
id, nazwa, tabela1

tabela3:
id, nazwa, tabela1, tabela2


Są one połączone relacjami tak, że:

niektóre rekordy z tabela1 mają odpowiadające im rekordy w tabela2 (relacja: tabela1.id=tabela2.tabela1)
a z kolei niektóre rekordy z tabela2 mają odpowadające im rekordy w tabela3 (relacja: tabela2.tabela1=tabela1.id, tabela3.tabela1=tabela2.tabela1 i tabela3.tabela2=tabela2.id ...)

No i teraz mam problem np. z wyszukaniem po polu nazwa tak by można było wyświetlić w lićie wyników:
tabela1.nazwa -gdy brak dowiązanych rekordów z tabela2
tabela1.nazwa > tabela2.nazwa -gdy brak dowiązanych rekordów z tabela3
i tabela1.nazwa > tabela2.nazwa > tabela3.nazwa -gdy wszystkie 3 tabele są połączone wspólnymi rekordami

...bo jak dam:
  1. <?php
  2. if($sql = mysql_query("SELECT tabela3.nazwa AS t3naz, tabela3.id AS t3id, tabela2.nazwa AS t2naz, 
    tabel
  3. 2.id AS t2id, tabela1.nazwa AS t1naz, tabela1.id AS t1id FROM tabela3, tabela2, 
  4. abela1 WHERE tabela3.nazwa LIKE '%slowo%' OR tabela2.nazwa LIKE '%slowo%' OR tabela1.nazwa LIKE '%slowo%'",$conn)){
  5.  
  6. while ($rekord = mysql_fetch_array($sql)){
  7. echo $rekord['t1naz'].' > '.$rekord['t2naz'].' > '.$rekord['t3naz'].'<br>';
  8. }
  9. }
  10. ?>
to mi sieczka wychodzi - niby jasne bo relacji tu brak.
-w zasadzie nawet tam gdzie nie powinno w t2naz albo t3naz nic pokazywać jednak coś jest.

Ale jak dodam ww. relacje to mi ładuje tylko to gdzie jest ona pełna
a nie ładuje np. tych gdzie np. tabela1 albo tabela2 nie ma dowiązanych rekordów z tabeli podrzędnej.


Jak to rozwiązać?
qqrq
Poczytaj i pokombinuj z INNER JOIN, OUTER JOIN, LEFT INNER JOIN i podobnymi - to taki trochę inny sposób łączenia tabel niż ty zastosowałeś (niektóre tolerują, jak ty to określasz, "brak relacji" po jednej, lub po obu stronach), no i jeszcze IS NULL. Poszukaj. smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.