27. januar 2002 - 15:21Der er
7 kommentarer og 2 løsninger
flerords søgning
Jeg har en søgefunktion der finder poster i en tabel. Feltet søgefunktionen kigger i hedder 'Keyword'. Der står kun et i keywordfeltet i hver post i tabellen. Problemet er nu at jeg fint kan søge på et ord, hvorefter den så returnerer de poster hvor keyword feltet er lig med det søgte ord. Men hvis jeg nu skriver 2 ord adskildt af et mellemrum, eller et kommer eller hvad ved jeg går det jo ikke så godt. Hvis jeg indtaster 'ord1 ord2' i mit søgefelt vil jeg gerne have at jeg får de poster hvor keyword enten er lig med ord1 eller ord2. Altså skal kun et af ordene matche.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg indtaster ikke min søgetekst i 2 felter men i et felt. Så jeg har ikke nogen variabel der hedder ord2. Jeg har kun 1 variabel der hedder seektekst. Som det er nu er min SQL SQL = "select * from tblkeyword where keyword LIKE " & seektekst
If strSearchType <> "AND" And strSearchType <> "OR" Then strSearchType = "OR" End If
Dim s, sArray(), u, y
s = strKeyword
i = 0
While s <> "" y = InStr(1, s, " ", 1) If y = 0 Then y = Len(s)+1 End If If y > 1 Then ReDim Preserve sArray(u) sArray(u) = Left(s,y-1) u = u + 1 End If s = Mid(s,y+1) Wend %>
If strKeyword <> "" Then Response.Write "<FONT FACE=""Verdana"" SIZE=""2"" COLOR=""#000000""><B>Resultat af søgning på '" & strKeyword & "':</B></FONT>" Else Response.Write "<FONT FACE=""Verdana"" SIZE=""2"" COLOR=""#000000""><B>Resultat af søgning på kategorien: '" & Request.QueryString("Kategori") & "':</B></FONT>" End If
<INPUT TYPE="radio" NAME="searchtype" VALUE="AND" CHECKED> Søgning på alle ord (og)<BR> <INPUT TYPE="radio" NAME="searchtype" VALUE="OR">Søgning på nogen ord (eller)
Det havde jeg på fornemmelsen. Altså skal dit søgeord skilles af i det antal ord der nu er indtastet. Hvis ikke torbenmelander's svar virker så sig' li' til.
Har du noget imod at udspecifierer den lidt hvis jeg nu siger at tekstvariabeleren med søgeordet hedder 'seektekst'. Man kan maks søge på 3 ord og disse skal adskilles med mellemrum.
Kan du oversættet det til det svar du har? Så ville jeg være yderst taknemmelig.
Og coltau hvis du har nogle gode ideer må du endelig sige til.
Dim strSQl, MyArray, bolFirst MyArray = Split(seektekst," ")
strSQL = "SELECT * FROM tblkeyword"
bolFirst = True
For z=0 To UBound(MyArray)
If bolFirst Then strSQL = strSQL & " WHERE keyword LIKE '"& MyArrau(z) &"'" bolFirst = False Else strSQL = strSQL & " AND keyword Like '"& MyArray(z) &"'" End If
// ashoej og torbenmelander Kan ikke lige poste et svar så deler jeg pointene mellem jer. Det var begge nogle godt svar. Torben fik hul på bylden og askhoej klarede det sidste.
Godt du kunne bruge forslagene og skulle det være en anden gang.
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.