![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 30.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam prosty skrypt wyszukiwania danych z bazy. Problemy zaczynając się gdy chce wyszukać dwa wyrazy np Nokia 3220
Oraz plik html
W jaki sposób zmodyfikować zapytanie do bazy aby wyszukiwało też po dwóch słowach? Czy trzeba $query rozdzielić po spacji? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 30.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
trim wyczysci ci tylko zbedne spacje na poczatku i na koncu. Blad zas co pokazales wynika z tego $calosc = explode($search, ' '); $model = $calosc[0]; $marka = $calosc[1]; Zawsze zakladasz ze istnieje $calosc[1] co jest rzecz jasna blednym zalozeniem bo nie zawsze ktos w wyszukiwarce wpisze dwa slowa. Musisz sprawdzc czy $calosc[1] istnieje i w zaleznosci od tego szukac albo dwoch slow albo jednego. Od biedy jak nie istnieje to za $marka podstawiac nic ale to i tak wowczas zapytanie bedzie do kitu Właśnie myślałem, że mogę sprawdzić ilość słów w $search np tak w kodzie PHP
Ale to nie załatwiało błędu więc
Zmieniłem kod na taki. Błąd zniknął ale w momencie jak wcisnę spacje i wpisuję drugie słowo nie mam wyników... Przypuszczam, że liczenie słów po stronie php działa ale nie w momencie gdy przesyłamy dane za pomocą ajax live Pozdrawiam trim pomoże Ci przy linijce: if(search != '') Jeśli przed tym dasz trim na wartości, to nie będziesz słał wartości dopóki nie pojawi się inny znak niż biały znak. Czyli rozwiąże problem, o którym pisałeś wyżej. Dziękuje za odpowiedź Po zmianach w php dodałem też funkcję trim
Która powoduje że wyniki nie znikają po spacji (tak jak napisałeś) ale dopiero jak zacznę wpisywać pierwszą literę modelu |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 13:45 |