Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Szukanie po dwóch frazach., Szuka po jednej, po dwócj już nie. :(
szczalpi
post
Post #1





Grupa: Zarejestrowani
Postów: 336
Pomógł: 0
Dołączył: 25.10.2006

Ostrzeżenie: (10%)
X----



Witam
Mam problem z szukaniem. Kiedy wpiszę jedno słowo do wyszukiwania jest ok, ale już przy dwóch nie zwraca żadnych rekordów.
Proszę was o pomoc jak zmienić zapytanie, aby szukało po dwóch frazach.
Proszę o pomoc.
Pozdrawiam

  1. $sql="select * from users where miasto like '%$znajdz%' or nazwa_obiektu like '%$znajdz%' or rodzaj_obiektu like '%$znajdz%' or region like '%$znajdz%' or wojewodztwo like '$znajdz' limit ".(($page-1)*$ile).",".$ile;
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Przede wszystkim musisz poczytać o tym jak się robi "wyszukiwarkę". Ogólnie do małych serwisów jeszcze LIKE przejdzie - przy większej ilości danych radzę zapoznać się z wyszukiwaniem pełnotekstowym (przynajmniej indeksy fulltext i match against na początek). W pokazanym przez Ciebie przykładzie szukasz po całej szukanej frazie co może być słuszne albo i nie w zależności od założenia.

Opcje są ogólnie 3:

1. Pełna fraza

Ktoś wpisze "Warszawa Kraków" - zostaną zwrócone te wpisy, które mają dokładnie taki zapis

2. Wszystkie słowa z frazy naraz ale traktowane oddzielnie:

Musisz podzielić frazę na wyrazy (po spacji - np. funckja explode), usunąc spację z końca i początku każdego słowa i utworzyć zapytanie typu:

  1. SELECT ... FROM ... WHERE pole LIKE '%slowo1%' AND pole LIKE '%slowo2%' AND pole LIKE ... -- itd


3. Przynajmniej jedno ze słów z frazy

Tak jak wyżej tylko zamiast AND dajesz OR:

  1. SELECT ... FROM ... WHERE pole LIKE '%slowo1%' OR pole LIKE '%slowo2%' OR pole LIKE ... -- itd


Ogólnie to wszystko. W przypadku jednak gdy szukasz po kilku polach musisz taką operację wykonać dla każdego - czyli dynamicznie tworzyć zapytanka.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.10.2025 - 13:59