Mam problem z wyszukiwarką. Na początku była z LIKE jednak szybko przekonałem się o bezużyteczności tej metody, więc zainteresowałem się MATCH i AGAINST.
Wyszukiwarka działa jednak nie tak jak powinna.
Mając np tabele:
Kod
id | tytul
-------------------------
1 | Simpsons - 01
2 | Simpsons - 02
3 | Simpsons - Special 1
4 | Futurama - 01
5 | Futurama - Special
6 | Simpsons - Special 2
-------------------------
1 | Simpsons - 01
2 | Simpsons - 02
3 | Simpsons - Special 1
4 | Futurama - 01
5 | Futurama - Special
6 | Simpsons - Special 2
Wykonuje zapytanie:
<?php ... $zap = "SELECT * FROM napisy WHERE MATCH (tytul) AGAINST ('+$search' IN BOOLEAN MODE) ORDER BY tytul ASC"; ... ?>
Po przekazaniu zmiennej $search o wartości simpsons special wynikiem wyszukiwania są wszystkie rekordy które zawierają w sobie wyraz simpsons lub special. (w tym wypadku cała tabela bez rokordu o id równym 4)
Jak mam stworzyć zapytanie dzięki któremu zostanią wyświetlone tylko i wyłącznie pozycje które zawierają w sobie wyrazy simpsons i special?
EDIT:
W sumie zastosowałem preg_replace i działa, ale dla całych wyrazów... (spacje na spacje z plusem. Dzieki czemu 2 wyraz otrzymuje +).
Jednak teraz powstał inny problem. Jak zadać zapytanie do bazy, aby z wyszukiwania np: pson Spec wyszukało Simpsons - Special 1 i 2?