08. oktober 2003 - 22:07Der 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
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
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")
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%'
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)
Synes godt om
Ny brugerNybegynder
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.