17. januar 2005 - 23:45Der er
6 kommentarer og 1 løsning
søgning i tabel
Jeg har en side hvor man kan oprette en brugerprofil og vælge på en liste hvilket amt man er fra - Problemet er så bare at når man laver en søgning på f.eks. Århus amt findes intet.
Er der en der kan fortælle mig hvordan man "let" kommer over problemet med æ ø å?
lav en replace af æøå samt ÆØÅ inden du indsætter i databasen:
tekst = Request.Form("teksten") tekst = Replace(tekst,"æ","æ") tekst = Replace(tekst,"ø","ø") tekst = Replace(tekst,"å","å") tekst = Replace(tekst,"Æ","Æ") tekst = Replace(tekst,"Ø","Ø") tekst = Replace(tekst,"Å","Å")
nu kan du bruge variablen tekst til at insætte din tekst i databasen, hvor du før brugte Request.Form("teksten")
'Tjecker om brugeren er logget ind if session("brugernavn") = "" then Response.Redirect("login_annonce.asp?mode=login") end if
'Hvis brugeren har submittet login formen if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Henter profil Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'" rs.open sql, conn, 1, 3
tekst = Request.Form("teksten") tekst = Replace(tekst,"æ","æ") tekst = Replace(tekst,"ø","ø") tekst = Replace(tekst,"å","å") tekst = Replace(tekst,"Æ","Æ") tekst = Replace(tekst,"Ø","Ø") tekst = Replace(tekst,"Å","Å")
Du skal bruge den her når du indsætter i databasen:
<% if mode = "ny_annonce" then
'Tjecker om brugeren er logget ind if session("brugernavn") = "" then Response.Redirect("login_annonce.asp?mode=login") end if
'Hvis brugeren har submittet login formen if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Henter profil Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'" rs.open sql, conn, 1, 3
tekst = Request("By") tekst = Replace(tekst,"æ","æ") tekst = Replace(tekst,"ø","ø") tekst = Replace(tekst,"å","å") tekst = Replace(tekst,"Æ","Æ") tekst = Replace(tekst,"Ø","Ø") tekst = Replace(tekst,"Å","Å")
else stripstate = "Du har ikke udfyldt alle felterne" end if
end if %>
Når du så har indsat i databasen og skal lave din søgning går jeg ud fra at du request'er en form for at finde resultaterne. Her kan du så også benytte dig af det jeg skrev tidligere.
strSQL = "SELECT * FROM annoncer WHERE [By] LIKE '%"& Request.Form("sogeord") &"%'" set rs = Conn.Execute(strSQL)
response.write "Ved en søgning på "& sogeord &" blev følgende resulater fundet:" Do response.write "Annonce nr.: "& rs("id") rs.movenext loop until rs.eof %>
strSQL = "SELECT * FROM annoncer WHERE [By] LIKE '%"& sogeord &"%'" set rs = Conn.Execute(strSQL)
response.write "Ved en søgning på "& sogeord &" blev følgende resulater fundet:" Do response.write "Annonce nr.: "& rs("id") rs.movenext loop until rs.eof %>
Desuden bør du ikke bruge reserverede ord i navne til dine tabeller... derfor jeg har skrevet den som [By]... du vil nok kunne se hvorfor i dette eks.
SELECT * FROM tabel ORDER BY By <-- fungere ikke helt optimalt så kald den postby i stedet for.
Ja min søgning ser lidt anderledes ud, kan ikke lige hitte ud af hvordan jeg får sogeord flettet ind....
' Henter værdien fra form strKeyword1 = Trim(Request.Form("Keyword1")) strKeyword2 = Trim(Request.Form("Keyword2")) strKeyword3 = Trim(Request.Form("Keyword3")) strKeyword4 = Trim(Request.Form("Keyword4"))
If Len(strKeyword1) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear strKeyword1 = Replace(strKeyword1,"'","''") Else ' Hvis der er skrevet i feltet strKeyword1 = Replace(strKeyword1,"'","''") End If
If Len(strKeyword2) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear strKeyword2 = Replace(strKeyword2,"'","''") Else ' Hvis der er skrevet i feltet strKeyword2 = Replace(strKeyword2,"'","''") End If
If Len(strKeyword3) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear strKeyword3 = Replace(strKeyword3,"'","''") Else ' Hvis der er skrevet i feltet strKeyword3 = Replace(strKeyword3,"'","''") End If
If Len(strKeyword4) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear strKeyword4 = Replace(strKeyword4,"'","''") Else ' Hvis der er skrevet i feltet strKeyword4 = Replace(strKeyword4,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT * FROM Annoncer WHERE" strSQL = strSQL & " (Postby LIKE '%" & strKeyword1 & "%')" strSQL = strSQL & " And (Type LIKE '%" & strKeyword2 & "%')" strSQL = strSQL & " And (Periode LIKE '%" & strKeyword3 & "%')" strSQL = strSQL & " order by Dato desc"
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.