Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Fulltext mysqli
Forum PHP.pl > Forum > Bazy danych > MySQL
piotr485
Witam, mam problem z przeszukaniem bazy danych, zrobiłem takie zapytanie:

  1. mysqli_query($db,'
  2. SELECT
  3.  
  4. katalog_firm.nazwa_firmy,
  5. katalog_firm.page_o_nas,
  6. podkategorie.slowa_kluczowe
  7.  
  8. MATCH(nazwa_firmy,page_o_nas) AGAINST("'.$szukana.'" WITH QUERY EXPANSION) AS trafnosc
  9. FROM katalog_firm
  10. JOIN podkategorie ON katalog_firm.id_podkategoria = podkategorie.id
  11. WHERE MATCH(nazwa_firmy,page_o_nas) AGAINST("'.$szukana.'" WITH QUERY EXPANSION)
  12. ORDER BY trafnosc DESC') OR die(mysqli_error());


problem w tym, że to nie działa jeśli wpiszę samo MATCH(nazwa_firmy) lub MATCH(page_o_nas) to śmiga, ale jak są wpisane dwa pola to już się wysypuje i pisze:
Warning: mysqli_error() expects exactly 1 parameter, 0 given in

czy MySQLi ma jakąs inną składnie niż MySQL czy o co chodzi? bo na wszystkich stronach piszą, że należy wymienić pola tabeli po przecinku i że będzie to śmigać
viking
Warning tutaj dotyczy mysqli_error , brakuje parametru połączenia. Zobacz w dokumentacji.
piotr485
no faktycznie, dodałem połączenie i mam taki błąd:
Cytat
Can't find FULLTEXT index matching the column list
ale pola mają index FULLTEXT bo jak daje jeden z nich to działa wiec nie wiem o co kaman
Pyton_000
Jeśli masz założony fulltext na 2 kolumny to musisz podać w takiej kolejności kolumny w zapytaniu w jakiej są zapisane w bazie np.

Jeśli masz FullText na column1,column2 (jako 1 index) to musisz podać w takiej kolejności w zapytaniu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.