Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z warunkiem (operatory and, or, like)
Skyline
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Witam!

Mam problem z zapytaniem SQL. Zapytanie ma operować na dwóch tabelach.

Pierwsza tabela "Produkty" ma pola "idProduktu", "nazwaProduktu", "opisProduktu", "nrKat", "idKategorii", "widoczność".

Druga tabela "Kategorie" ma pola "idKategorii", "nazwaKategorii".

Zapytanie ma na celu znalezienie podanego przez użytkownika słowa w polach "nazwaProduktu", "opisProduktu", "nrKat".

Zapytanie ma zwrócić "idProduktu", "nazwaProduktu", "nrKat", "nazwaKategorii".

Zapytanie:

SELECT `Produkty`.`idProduktu`, `Produkty`.`nazwaProduktu`, `Produkty`.`nrKat`, `Produkty`.`idKategorii`, `Kategorie`.`idKategorii`, `Kategorie`.`nazwaKategorii`
FROM `Produkty`, `Kategorie` WHERE `Produkty`.`idKategorii` = `Kategorie`.`idKategorii` AND `Produkty`.`nazwaProduktu` LIKE '%".$szukane_slowo."%'

działa bez zarzutu.

Problem zaczyna się, gdy chce dodać następne warunki:

OR `Produkty`.`opisProduktu` LIKE '%".$szukane_slowo."%'
OR `Produkty`.`nrKat` LIKE '%".$szukane_slowo."%'

Pozostałe warunki działają, jeśli usunę warunek WHERE `Produkty`.`idKategorii` = `Kategorie`.`idKategorii`, ale jest on niezbedny do pobrania nazwy kategorii zapisanej w drugiej tabeli (Kategorie). Produkty i Kategorie maja wspolny klucz: idKategorii.

Czy ktoś wie, jak powinno wyglądać to zapytanie?


Trzeba było wykluczyc operator AND:

SELECT `Produkty`.`idProduktu`, `Produkty`.`nazwaProduktu`, `Produkty`.`nrKat`, `Produkty`.`idKategorii`, `Kategorie`.`idKategorii`, `Kategorie`.`nazwaKategorii`
FROM `Produkty`LEFT JOIN `Kategorie` ON `Produkty`.`idKategorii` = `Kategorie`.`idKategorii` WHERE `Produkty`.`nazwaProduktu` LIKE '%".$szukane_slowo."%' OR `Produkty`.`opisProduktu` LIKE '%".$szukane_slowo."%' OR `Produkty`.`nrKat` LIKE '%".$szukane_slowo."%'

Ten post edytował Skyline 28.10.2007, 17:02:47
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 00:07