Avatar billede gummisko Nybegynder
08. oktober 2003 - 22:07 Der er 6 kommentarer og
1 løsning

Query HJÆLP til søgning i database efter 2 eller flere ord

Fra en form fås keyword (fra search field):
hvis det består af flere ord(tekst-string) skal denne tekst-string deles op i enkelte ord, som bruges til at generere keyword1, keyword2 and so on

F.ex:  Det er skide svært
deles op til
keyword1 = Det
keyword2 = er
and so on

strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword1 & "%')"
strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword2 & "%')"
strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword3 & "%')"
strSQL = strSQL & " OR (beskrivlink LIKE '%" & strKeyword4 & "%')" sv.
Hvordan skrives koden til dette??

er det noget med en ASP-funktion:
'Split the terms on spaces
    Dim termsArray
    termsArray = split(strKeywords," ")
- og hvis ja: hvordan fås dette array lind i SQL-strengen?????
vh
BM
Avatar billede netro Nybegynder
08. oktober 2003 - 22:55 #1
Arr_Ord = Split(strKeywords, " ")
If UBound(Arr_Ord) > 0 Then
  For i = 0 To UBound(Arr_Ord)
      strSQL = strSQL & " Or beskrivlink Like '%" & Arr_Ord(i) & "%'"
  Next
  strSQL = "Select * From Tabel Where" & Mid(strSQL, 4)
End If
Avatar billede gummisko Nybegynder
08. oktober 2003 - 23:44 #2
det ser lovende ud - lige en ting mere:
hvis nu OR skal skiftes ud med AND, hvordan skriver du så SQL-strengen - f.eks med Request("or")og Request("and")
Avatar billede netro Nybegynder
08. oktober 2003 - 23:46 #3
Anders = "And"

strSQL = strSQL & " " & Anders & " beskrivlink Like '%" & Arr_Ord(i) & "%'"
Avatar billede gummisko Nybegynder
08. oktober 2003 - 23:49 #4
tusinde tak - jeg prøver det i morgen tidlig. Hvis det ikke virker vender jeg lige tilbage til dig - du er vist ret skrap til ASP!!!
Avatar billede netro Nybegynder
08. oktober 2003 - 23:50 #5
;o)
Avatar billede gummisko Nybegynder
09. oktober 2003 - 07:36 #6
strKeyword = (Request.Form("Keyword"))

If Len(strKeyword) = 0 Then
' Hvis der ikke er skrevet i feltet
strKeyword = "Skriv i feltet"
Response.Write("<b>Du skal skrive noget i søgefeltet</b><br>")
else

Response.Write ("<b>Følgende profiler blev fundet</b>:<br><br>")
' Hvis der er skrevet i feltet
Arr_Ord = Split(strKeyword, " ")
If UBound(Arr_Ord) > 0 Then
  For i = 0 To UBound(Arr_Ord)
      strSQL = strSQL & " and navn Like '%" & Arr_Ord(i) & "%'"
  Next
  strSQL = "Select * From komp Where " & Mid(strSQL, 4)
End If
end if
Response.Write (strSQL)

giver følgende melding med keyword=bm er sød:

Select * From komp Where d navn Like '%bm%' and navn Like '%er%' and navn Like '%sød%'

HVOR KOMER DET d FRA???????????????
Avatar billede netro Nybegynder
09. oktober 2003 - 14:17 #7
Det er sidste tegn i "anD". Da "And" er ét tegn længere end "Or", skal du nu kalde mid-funktionen med:

strSQL = "Select * From komp Where " & Mid(strSQL, 5)
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
Kurser inden for grundlæggende programmering

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