Avatar billede llSimsll Nybegynder
02. december 2013 - 17:00 Der er 3 kommentarer

Søgefunktion

Hej Eksperten, jeg søger i en database med denne query:
"SELECT FoodId, DanName FROM FoodInfo WHERE DanName LIKE '%{$arr[$i]}%' ORDER BY DanName"

Det er så $arr[$i], der indeholder søgeordet.
Men søger man på "mel" kommer der alt andet end mel-relateret svar, såsom marMELade, MELon og karaMEL.

hvordan kan jeg optimere søgningen så resultater som Hvedemel, boghvedemel osv. stadig kommer med?

Lidt info omkring database opbygning; "FoodInfo" indeholder 1050 forskellige fødevarer, "GroupName" er en opdeling af fødevarer i hovedgrupper og "Classif" indeholder undergrupper. Om det kan være til nogen hjælp ved jeg ikke helt.
Avatar billede michael_stim Ekspert
02. december 2013 - 17:36 #1
Enten skriver du en avanceret algoritme á la googles eller også kan du bruge metadata.
Avatar billede llSimsll Nybegynder
02. december 2013 - 18:34 #2
Ja den tanke om algoritme havde strejfet mig, den løsning er både tids- og tankekrævende, den går jeg helst udenom.

Den løsning med metadata forstår jeg ikke helt, vil du forklare nærmere?
Avatar billede scifi-bob Nybegynder
03. december 2013 - 04:58 #3
Jeg vet ikke hvad de nævnte kategori felter indeholder, men du kan jo prøve at søge i flere felter.

"SELECT FoodId, DanName FROM FoodInfo
WHERE GroupName LIKE '%{$arr[$i]}%'
AND DanName LIKE '%{$arr[$i]}%'
ORDER BY GroupName,DanName"

Dersom du har tilgang til at udfylde et ekstra "gruppe" felt, kan du prøve dette:

"SELECT FoodId, DanName FROM FoodInfo
WHERE (GroupName = '{$group}' OR Classif LIKE '{$group}')
AND DanName LIKE '%{$arr[$i]}%'
ORDER BY GroupName,DanName"

SQL har mange muligheder ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester