wyszukiwanie w tabelce

0

Cześć!
Chciałbym stworzyć takie "inteligentne wyszukiwanie" i nie bardzo wiem jak skonstruować zapytanie, czy da się to zrobić jakoś sprytnie.
Otóż tabela nazywa się "czesci" i są w niej miedzy innymi takie pola jak "marka" , "model", "nazwa". Chciałbym, aby po wpisaniu frazy np "zderzak volkswagen passat" inteligentnie szukało, tzn dopasowało odpowiednie słowa frazy do pól. Użytkownik może też wpisać samą frazę "zderzak" i wtedy powinno znaleźć wszystkie zderzaki w tabelce, lub analogicznie może wpisać "audi" i powinno znaleźć wszystkie części do wszystkich modeli audi, itp.

Myślałem, aby wyszukiwać każdy wyraz frazy w każdym polu, ale to chyba by było zbyt żmudne. Bo musiałbym jakoś zbierać wyniki i potem wyświetlić te które pasowały w każdym wyszukiwaniu. Może ktoś ma pomysł i mógłby podpowiedzieć, będę wdzięczny. Zaznaczę, że baza to MySQL i programuje w PHP

0

poczytaj o full text search - to powinno rozwiązać Twój problem

0

dzięki za zainteresowanie tematem i podpowiedź:) Szukałem o serach fulltext i coś tam znalazłem. Działa, ale nie do końca tak jakbym chciał. Otóż tworzę zapytanie np:

SELECT * FROM `czesci` WHERE MATCH(model, marka) AGAINST ('renault passat');

Problem jest w tym że szuka to tak jakby na warunku OR tzn znajduje wiersze gdzie był wyraz "renault" lub "passat". Chciałbym aby w tym przypadku wyświetliło 0 wyników ponieważ nie ma renaulta passata. Też mam problem z nazwami krótkimi typu "a4", bo wtedy pomija przy wyszukiwaniu.

0

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html to rozwiązuje pierwsze
http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html a to drugie i na przyszłość zacznij od czytania dokumentacji

0

Niestety z angielskim u mnie cienko wiec raczej unikam stron obcojęzycznych. Chyba, że nie mam już wyjścia i swoim języku nic nie mogę znaleźć tak jak w tym przypadku to muszę się zmusić. Dzięki za pomoc;)

0

Wybaczcie, że post pod postem, ale teraz napotkałem problem, jak obejść foregin key jeśli tabelę zmieniłem na MyISAM? Wyszukuje już ładnie jednak muszę mieć jakąś relację albo coś podobnego co wskazuje na inną tabelę problem ten poruszałem kilka wątków wcześniej proste relacje między tabelkami .

1 użytkowników online, w tym zalogowanych: 0, gości: 1