Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Zapytanie sql zwraca błędne wyniki
--Piotrek--
post
Post #1





Goście







Witam,
Moje zapytanie wygląda tak:

  1. SELECT id,tytul,link FROM `tabela` WHERE match(tytul) against ("+'.$szukane.'*" IN BOOLEAN MODE) GROUP BY link order by match(tytul) against("+'.$szukane.'*") desc


Przy wyszukiwaniu załóżmy: 'andrzej nowakowski kiedy nadejdzie jutro', wyniki wyglądają mniej więcej tak:

1. andrzej nowakowski - andrzej nowakowski - nadzieja
2. andrzej nowakowski - zmierch
3. andrzej nowakowski
4. andrzej nowakowski - kiedy
5. andrzej nowakowski - kiedy nadejdzie jutro
6. andrzej nowakowski - zima

Pomijając fakt, że niektóre rekordy, jak widać mają błędne tytuły to jednak dlaczego to co jest idealnym dopasowaniem dla szukanej frazy, zamiast
na początku jest dopiero na 5 miejscu ?

Problem ten występuje tylko dla pewnych zapytań, ale jednak coś jest nie tak.
Jak to naprawić ?
Z góry dzięki za pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--Piotrek--
post
Post #2





Goście







Nie za bardzo mi to działa.
Pierwszy sposób czyli:
  1. $sql = 'SELECT id,tytul,link FROM `tabela` WHERE match(tytul) against ("+'.$szukane.'*" IN BOOLEAN MODE) GROUP BY link order by match(tytul) against("'.$szukane.'") desc';

Działa identycznie z tym co podałem na początku.

Natomiast drugi sposób:
  1. $sql = 'SELECT id,tytul,link FROM `tabela` WHERE match(tytul) against ('\"$szukane\"' IN BOOLEAN MODE) GROUP BY link order by match(tytul) against("'.$szukane.'") desc';

wywala mi błędy:
  1. Warning: Unexpected character in input: '\' (ASCII=92) state=1 on line 128
  2. Parse error: syntax error, unexpected '"' on line 128
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 10:31