Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]zamiana na wyszukiwarkę Fulltext
Forum PHP.pl > Forum > Przedszkole
pa-jong
Witam,
proszę was o wskazówki

próbuję moją wyszukiwarkę zamienić na pełnotekstową i ni cholery mi nie idzie..
obecnie kod wygląda tak..

  1. $strWhere = "";
  2. if (strlen($Filtr["Symbol"])) $Where .= "Symbol LIKE '".StringToMySQL($Filtr["Symbol"])."%' AND ";
  3. if (strlen($Filtr["Nazwa"])) $strWhere .= "Nazwa LIKE '%".StringToMySQL($Filtr["Nazwa"])."%' AND ";
  4. if ($Filtr["magazyn"] > 0)
  5. {
  6. if (strlen($Filtr["StanOd"])) $strWhere .= "(skl".$Filtr["magazyn"]." >= ".$Filtr["StanOd"].") AND ";
  7. if (strlen($Filtr["StanDo"])) $strWhere .= "(skl".$Filtr["magazyn"]." <= ".$Filtr["StanDo"].") AND ";
  8. }
  9. if ($Filtr["Grupa"] > 0) $strWhere .= "(IdGrupa = ".$Filtr["Grupa"].") AND ";
  10. if ($Filtr["Promo"] == 1) $strWhere .= "(promo = 't') AND ";
  11. if (strlen($strWhere)) $strWhere = substr($strWhere, 0, strlen($strWhere) - 5);
  12.  
  13. (...)
  14.  
  15. $strSql = "SELECT Symbol, Nazwa, skl1, skl1Cena, skl2, skl2Cena FROM stany ";
  16. if (strlen($strWhere)) $strSql .= "WHERE ".$strWhere." ";
  17. $strSql .= "ORDER BY ".$SortCols[$intSortCol]." ".$SortDirs[$intSortDir]." ";
  18. $strSql .= "LIMIT ".(($intPage - 1) * $intRowsDisplay).",".$intRowsDisplay;
  19. $objRst = mysql_query($strSql, $connect);


najbardziej chodzi tutaj o kolumnę "Nazwa"
niestety przy każdej próbie jej zmodyfikowania pod kątem FULLTEXT zapytanie nie zwraca żadnych wyników..

pomożecie ?

edit//
Próbowalem..
  1. SELECT Symbol, Nazwa, skl1, skl1Cena FROM stany
  2. WHERE MATCH (Symbol) AGAINST ('00024379') AND
  3. MATCH (Nazwa) AGAINST ('Angielski') AND
  4. (skl1 >= 1) AND
  5. (skl1 <= 1) AND
  6. (promo = 't') AND
  7. ORDER BY Nazwa ASC


zwraca mi
#1064 - Something is wrong in your syntax obok 'ORDER BY Nazwa ASC LIMIT 0, 30' w linii 7

gdzie może być błąd ?


//edit

ok, chyba działa..
dodałem także BOOLEAN MODE
obecnie problem jednak jest taki,
ze przy podaniu ciągu znaków "anat" zwraca 0 wyników... a powino być conajmniej 46

w przypadku LIKE dla uzupełniania ciągu przed i po służył znak "%"
jak to jest w przypadku FULLTEXT ?
nospor
Cytat
w przypadku LIKE dla uzupełniania ciągu przed i po służył znak "%"
jak to jest w przypadku FULLTEXT ?

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html
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.