Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze Sphinxem
Forum PHP.pl > Forum > Bazy danych > MySQL
husky83
Baza:

ID - wiadomo
NAZWA - varchar, znajduje się tu nazwa, którą przeszukuję
KATEGORIA - varchar, tutaj znajdują się oddzielone średnikami numery kategorii (np. 16;654;3246;7465). Z pewnych względów musi być to varchar.

Konfiguracja sphinxa (najważniejsze wpisy):
Kod
source zrodlo
{
   sql_query = SELECT `id`, `nazwa`,`kategoria`,`id-user` FROM tabela
   sql_attr_uint = it-user

  sql_query_info = SELECT * FROM `tabela` WHERE `id`=$id
}



i teraz kod PHP:
  1. $cl->Query('wyrazenie');

Działa jak trzeba..

Ale potrzebuję naraz wyszukiwać po nazwie i kategorii, czyli np. wyrażenie 'bmw' (w polu nazwa) i 645 lub 742 w polu kategoria..

Próbuję czegoś takego (dokumentacja):
  1. // wersja 1
  2. $cl->Query('@nazwa bmw @kategoria 645 742');
  3.  
  4. // wersja 2
  5. $cl->AddQuery("@nazwa bmw");
  6. $cl->AddQuery("@kategoria 645 742");
  7.  



Obydwie wersje zwracają co prawda wszystkie wpisy z 'bmw', ale niezależnie od kategorii. Spróbowałem samą drugą linię z wersji 2 - wypisuje chyba wszystko jak leci, bez względu na kategorię...

Pytanie:
jak zrobić wyszukiwanie danej frazy, która musi znajdować się w jednej z podanych kategorii?
longinus_torwaldzki
czesc,

nie jestem jakims guru i na sphinxie tez sie nie znam ale moze pomoze Ci fakt, ze poprawnie powinno się w takim przypadku użyć tabeli posredniej products_categories a nastepnie skorzystac z joina. Całość to nic innego jak relacja wiele do wielu.

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.