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:
to mi sieczka wychodzi - niby jasne bo relacji tu brak.
<?php if($sql = mysql_query("SELECT tabela3.nazwa AS t3naz, tabela3.id AS t3id, tabela2.nazwa AS t2naz,
tabel 2.id AS t2id, tabela1.nazwa AS t1naz, tabela1.id AS t1id FROM tabela3, tabela2, abela1 WHERE tabela3.nazwa LIKE '%slowo%' OR tabela2.nazwa LIKE '%slowo%' OR tabela1.nazwa LIKE '%slowo%'",$conn)){ } } ?>
-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ć?