Avatar billede pretsmann Nybegynder
17. januar 2005 - 23:45 Der 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 æ ø å?

(Data gemmes i acess db)
Avatar billede tjaz Nybegynder
18. januar 2005 - 10:43 #1
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")
Avatar billede pretsmann Nybegynder
18. januar 2005 - 15:45 #2
øhhh det fatter jeg ikke meget af....

Hvordan skal det stå? Koden ser således ud:

                <% 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.Form("teksten")
                        tekst = Replace(tekst,"æ","&aelig;")
                        tekst = Replace(tekst,"ø","&oslash;")
                        tekst = Replace(tekst,"å","&aring;")
                        tekst = Replace(tekst,"Æ","&AElig;")
                        tekst = Replace(tekst,"Ø","&Oslash;")
                        tekst = Replace(tekst,"Å","&Aring;")
                       
                            'Tilføjer felterne
                            rs.AddNew
                            rs("Brugernavn") = Server.HTMLEncode(Request("Brugernavn"))
                            rs("Region") = Server.HTMLEncode(Request("Region"))
                            rs("Postnr") = Server.HTMLEncode(Request("Postnr"))
                            rs("By") = Server.HTMLEncode(Request("By"))
                            rs.update
                           
                            Response.Redirect("login_udlejer.asp?mode=billedarkiv")       
                           
                            else   
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                       
                   
                        end if %>
Avatar billede tjaz Nybegynder
18. januar 2005 - 23:38 #3
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,"æ","&aelig;")
tekst = Replace(tekst,"ø","&oslash;")
tekst = Replace(tekst,"å","&aring;")
tekst = Replace(tekst,"Æ","&AElig;")
tekst = Replace(tekst,"Ø","&Oslash;")
tekst = Replace(tekst,"Å","&Aring;")

'Tilføjer felterne
rs.AddNew
rs("Brugernavn") = Server.HTMLEncode(Request("Brugernavn"))
rs("Region") = Server.HTMLEncode(Request("Region"))
rs("Postnr") = Server.HTMLEncode(Request("Postnr"))
rs("By") = Server.HTMLEncode(tekst)
rs.update

Response.Redirect("login_udlejer.asp?mode=billedarkiv")       

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.

<%
sogeord = Request.Form("sogeord")
sogeord = Replace(sogeord,"æ","&aelig;")
sogeord = Replace(sogeord,"ø","&oslash;")
sogeord = Replace(sogeord,"å","&aring;")
sogeord = Replace(sogeord,"Æ","&AElig;")
sogeord = Replace(sogeord,"Ø","&Oslash;")
sogeord = Replace(sogeord,"Å","&Aring;")

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
%>
Avatar billede tjaz Nybegynder
18. januar 2005 - 23:38 #4
FEJL!!!
Avatar billede tjaz Nybegynder
18. januar 2005 - 23:40 #5
Søgetingen skal self hedde:

<%
sogeord = Request.Form("sogeord")
sogeord = Replace(sogeord,"æ","&aelig;")
sogeord = Replace(sogeord,"ø","&oslash;")
sogeord = Replace(sogeord,"å","&aring;")
sogeord = Replace(sogeord,"Æ","&AElig;")
sogeord = Replace(sogeord,"Ø","&Oslash;")
sogeord = Replace(sogeord,"Å","&Aring;")

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.
Avatar billede pretsmann Nybegynder
19. januar 2005 - 22:37 #6
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"
Avatar billede pretsmann Nybegynder
07. februar 2005 - 11:11 #7
Har fået det løst, ellers tak....
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