Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyszukiwanie fulltekstowe problem
jarmiar
post 10.06.2013, 15:07:58
Post #1





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


  1. SELECT
  2. *,
  3. MATCH (name, name2, keywords) AGAINST ('%".$q."%') AS score,
  4. IF(premium=1, ( count_c_rec + count_cp_rec * $premium ), 0) AS entry_avg,
  5. IF(premium=1, (count_s_rec + count_c_rec + count_cp_rec ), 0) AS count_total
  6. FROM users
  7. WHERE MATCH (name, name2, keywords) AGAINST ('%".$q."%') AND active=1
  8. ORDER BY score DESC, entry_avg DESC


mimo, że w polu name znajduje się wyszukiwana przeze mnie fraza, mysql nie zwraca żadnego rekordu co tu może być źle? ewentualnie jak wy byście to zrobili?


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post 10.06.2013, 15:16:39
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jestes pewien, że masz frazę, która zawiera się między znakami %%?

W FULL TEXT SEARCH nie używa się %...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jarmiar
post 10.06.2013, 15:20:29
Post #3





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 10.06.2013, 16:16:39 ) *
Jestes pewien, że masz frazę, która zawiera się między znakami %%?

W FULL TEXT SEARCH nie używa się %...


jak usunę % to nadal nie zwraca mi rekordu...


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
nospor
post 10.06.2013, 15:24:34
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz kod po poprawkach. Tym razem pokaż go w całości z php, bo czort wie czy poprawnie składasz to zapytanie, a potem pokaż mi wynik
echo $sql;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jarmiar
post 10.06.2013, 15:28:28
Post #5





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


  1. SELECT *, MATCH (name, name2, keywords) AGAINST ('%portal%') AS score,
  2. IF(premium=1, ( count_c_rec + count_cp_rec * 10 ), 0) AS entry_avg,
  3. IF(premium=1, (count_s_rec + count_c_rec + count_cp_rec ), 0) AS count_total
  4. FROM users
  5. WHERE MATCH (name, name2, keywords) AGAINST ('%portal%') AND active=1
  6. ORDER BY score DESC, entry_avg DESC LIMIT 10 offset 0



to jest wynikowe zapytanie

fraza "portal" znajduje się w tym przypadku w polu keywords, natomiast inna fraza, którą wpisywałem znajdowała się w polu name, ogólnie to wszystkie możliwości sprawdziłem


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
nospor
post 10.06.2013, 15:29:21
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




facepalmxd.gif
Przecież nadal masz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jarmiar
post 10.06.2013, 15:30:18
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


nom, ale jak pisałem wyżej, po usnięciu nadal nie pomaga smile.gif


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
nospor
post 10.06.2013, 15:31:09
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




facepalmxd.gif
Jak mowie, że masz usunac, i pokazac kod wynikowy po usunięciu, to naprawdę tu nie ma żadnego haczyka z mojej strony :/


A index FULL TEXT na te pole w ogóle założyłeś?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
jarmiar
post 10.06.2013, 15:32:10
Post #9





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

Ostrzeżenie: (0%)
-----


oczywiście że tak

EDIT.

dodanie IN BOOLEAN MODE w AGAINST rozwiązało problem
szukana fraza stanowiła więcej niż 50% objętości całego pola smile.gif

Ten post edytował jarmiar 10.06.2013, 15:35:29


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:28