![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 7.04.2007 Ostrzeżenie: (0%)
|
Witam,
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 Wykonuje zapytanie:
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? Ten post edytował Yozen 12.02.2008, 18:03:17 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 25 Dołączył: 23.07.2004 Ostrzeżenie: (0%)
|
Gwizdka (*) zastępuje jakikolwiek znak.
dla tego przykładu pson Spec spróbuj '+*pson*+*Spec*' |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 7.04.2007 Ostrzeżenie: (0%)
|
Niestety nie działa. Nawet wyszukanie samego pson nic nie wyświetla pomimo *.
Trochę dziwne... Jeżeli szukana fraza nie zaczyna się od pierwszych liter któregoś z wyrazów tytułu to nic nie wyszukuje. np: *Si* działa a *pson* już nie. Dodam że mam włączone FULLTEXT dla kolumny tytul. EDIT: Problem rozwiązany. Jednak LIKE nie jest taki kiepski jak myślałem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ten post edytował Yozen 15.02.2008, 17:14:14 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 18:32 |