![]() |
![]() |
![]() ![]()
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 ![]() Ten post edytował Yozen 15.02.2008, 17:14:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 22:50 |