> Chtel bych hledat ve 3 polich (treba id, popis, keywords) a v PHP mam > promenou jako pole ($hledat[n]), ktera muze mit ruzny pocet > hodnot. Jak > postavit dotaz, aby se porovnavala kazda hodnota s kazdym z > tech tri poli? > > Napada me akorat v PHP pomoci for projit tu $hledat[n] a pro > kazdou hodnotu > udelat tri podminky oddelene OR. Pripada mi to ale priserne > slozity, urcite > existuje neco jednoduzsiho... > > Pak by to vypadalo asi takhle: > > SELECT * FROM takulka > WHERE (id LIKE \"%" . $hledat[0] . "%\") > OR (popis LIKE \"%" . $hledat[0] . "%\") > OR (keywords LIKE \"%" . $hledat[0] . "%\") > OR (id LIKE \"%" . $hledat[1] . "%\") > OR (popis LIKE \"%" . $hledat[1] . "%\") > OR ........ > > No a nakonec bych jeste rad seradil vasledek podle > nejcastejsiho vyskytu... > > Diky za kazde nakopnuti, zejmena pak spravnym smerem... ;) > > PS: RTFM delam, ale je mi to prd platny :( > skusal si fulltext? neviem ci je to presne to o co mas zaujem, ale tu je mensi navod alter table tabulka add fulltext fulltextindexname (columnname) vytvor si bud index na kazdy stlpec alebo na vsetky tri naraz (id, popis, keywords) alebo to skombinuj, treba si to vyskusat ake vysledky ti to vracia a co je pre teba najlepsie no a potom spravis select select ktore, stlpce, potrebujes, match (id, popis, keywords) against ('.$searchstring.') as skore where match (id, popis, keywords) against ('.$searchstring.') $searchstring si vytvor zlozenim vsetkych dat v tom tvojom poli $hledat, mozes si to vsak zopakovat sizeof($hledat) krat po jednom slove vo vratenych datach budes mat v stlpci skore s akou pocetnostou a podobnostou nasiel hladany string v tychto indexovanych stlpcoch, toto skore je ale vypocitavane mne dost zahadnym sposobom, priklad: na dotaz "velka raca" mi vrati s vacsim skore "raca" ako "velka raca" a neviem preco, ale to je uz moj problem pozri si manual mysql, tam je o fulltexte toho popisaneho dost - aj detailnejsie o tom co je vypustene z vysledku hladania za urcitych podmienok (htt p:// www. mysq l.com/documentation/mysql/bychapter/manual_Reference.html#Fulltext_Search) ja pouzivam system temporarnej tabulky a do nej ukladam medzivysledky vyhladavania jednotlivych slov - samozrejme bez vkladania duplicitnych zaznamov peter
This archive was generated by hypermail 2.1.2 : 14. 02. 2002, 16:00 CET