witam mam jedną tabelke w mysqlu, która wygląda m.w tak:
ID | nr_wolumenu | autor | rok_wyd | tytul | keywordy |
12 | 121332123 | J.Kos| 2001 | Prawo karne |;prawo;karne;prawo karne; |
w komórce "keywordy" trzymam keywordy (rozdzielone średnikami) opisujące wolumeny. Pole to nie ma ograniczenia, keywordów moze być wiele (ale nie raczej nie więcej niż 40-60)
proste szukanie mam skonstruowane prosto
query = "SELECT id, nr_wolumenu, tytul FROM tabela where keywordy like '%;$strsearch;%' limit $w, 20"
gdzie zmienna $strsearch to wartość wpisana w formularzu do szukania.
kolejną rzecza jaką chciałbym zrobić to wyszukiwanie zaawansowane, tak aby można było wpisać w formularzu np. coś takiego:
"kryminał and paryż and morderstwo not kos"
lub
"(kryminał or sensacja) and morderstwo"
czyli w sql:
"select id,, from tabela where keywordy like '%;kryminał;&' and keywordy like '%;paryż;%' and keywordy like '%;morderstwo;%' and keywordy not like '%;kos;%' limit 0,20 order by ..."
itd
teraz tylko pytanie jak skonstruować funkcje w php, która będzie analizowała wartość $strsearch i w zależności od tych and or not odpowiednio konstruowała zapytanie SQL.
Macie pomysł ?