![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Robię wyszukiwarkę i jak do tej pory udało mi się zrobić taką która wyszukuje gdy zadamy jej kilka warunków. SELECT * FROM tabela WHERE warunek1 AND warunek2 AND warunek3 and warunek4 itd, ale chciałbym zrobić tak, że nawet gdyby któryś z warunków nie został spełniony to zostałyby wyszukane pozycje które spełniają pozostałe warunki. Bardzo proszę o jakieś wskazówki, może jakieś przykłady. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Według mnie ten problem jest trochę stworzony na siłę. Robisz ANDy a jak nie zwraca żadnego rekordu to cofasz do formularza wyszukiwania i podajesz komunikat mówiący, że nie ma ofert spełniających podane kryteria i, że sugerujesz rozszerzyć kryteria. I tyle.
Jak ja czegoś szukam i wybieram kryteria to nie chcę żeby mi wyświetlało rekordy, które twórca strony uznał, że mimo wszystko chcę zobaczyć. Chcę raczej zobaczyć że nie ma takich rzeczy jakich szukam i jak będę chciał to sobie zmienię kryteria. To wprowadza w błąd, bo ktoś może nie analizować dokładnie wyników i stwierdzi że to jest dokładnie to czego chciał. Oczywiście zrobisz jak uważasz, to tylko moja refleksja. Jeżeli jednak się upierasz przy swoim rozwiązaniu to po prostu niech Twój skrypt, jeżeli zapytanie zwraca zero rekordów, usuwa jedno z kryteriów, które podał szukający (Ty określ które) i niech powtarza w pętli zapytania usuwając kolejne parametry aż nie zwróci czegokolwiek. Problemem jest to, że jeżeli szukam imie = jan nazwisko = kowalski a ty po pierwszym wykonaniu SELECT musisz usunąć któryś parametr i usuniesz nazwisko i znowu nie dostaniesz rekordów w których imie = jan podczas gdy mogły istnieć rekordy w których nazwisko = kowalski. Tak więc Twoją metodą skończysz na wypisaniu wszystkich kombinacji parametrów wyszukiwania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 18:59 |