09. august 2000 - 11:19Der er
3 kommentarer og 1 løsning
Søgning
Jeg er ved at lave en fritekst søgning til en hjemmeside. Jeg bruger følgende sql-sætning:
SQL = \"SELECT * FROM tabel WHERE tekst LIKE \'%\" & request.form(\"search\") & \"%\'\"
Det virker fint når man søger på et enkelt ord f.eks. FODBOLD, men der går ged i den, hvis man ønsker at søge på flere ord, og f.eks. skriver FODBOLD SUPERLIGAEN eller FODBOLD+SUPERLIGAEN i tekstfeltet. Hvordan løses dette?
En måde at gøre det på er at splitte søgestrengen op i enkelte ord og/eller sætninger. F.eks. kan du beslutte at \"FODBOLD SUPERLIGAEN\" er 1 sætning der skal søges på (således at der SKAL stå \"FODBOLD SUPERLIGAEN\" i en tekst før den tages med) og at \"FODBOLD+SUPERLIGAEN\" er 2 forskellige ord, der dog begge skal være i teksten. Så mangler du bare at beslutte hvordan det skal skrives for at en tekst findes hvis bare et af ordene er der (eks. \"FODBOLD / SUPERLIGAEN\")
Når du har taget disse beslutninger opsplitter du søgestrengen i separate felter, og derefter udvider du din select med f.eks:
SQL = \"SELECT * FROM tabel WHERE tekst LIKE \'%\" & felt1 & \"%\' AND \'%\" & felt2 &\"%\'\"
og hvis skråstregen findes i søgeteksten skal AND udskiftes med OR, d.v.s. at du skal lave 2 select hvoraf du vælger den ene hvis der ikke er skråstreg og den anden hvis der er en skråstreg.
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.