Avatar billede kragekjaer Praktikant
20. juli 2001 - 12:41 Der er 10 kommentarer og
1 løsning

Tjekke om data findes

Jeg skal lave en afmelding af nyhedsbrev, hvor brugeren skal udfylde sin mailadresse.

Der skal så tjekkes om den findes i databasen. Hvis den gør skal den slettes, hvis ikke så ......

Kender nogen en funktion til dette?

Jeg har prøvet med dette, men det virker ikke rigtigt:

function Tjekemail(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
        sqlString=\"SELECT userid FROM users WHERE useremail = \'\"& mail & \"\'\"
        Set RS = DBConn.Execute(sqlString)
       
        if RS.EOF then
        Tjek=1 \'hvis den ikke findes
        else
        Tjek=0 \'mailen findes
        end if
End function

\'Sletter bruger

function sletbruger(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
   
        DBConn.Execute \"DELETE FROM users WHERE useremail = \'\"& mail & \"\'\"
        DBConn.Close
        Set DBConn = Nothing
end function

mail=request.form(\"mail\")
if mail=\"\" then
message=\"Du skal skrive en emailadresse!\"
else

Tjekemail(mail)
if Tjek=1 then
message=\"Det angivne emailadresse eksisterer ikke\"
else
if Tjek=0 then
message=\"Du vil nu ikke længere modtage vores nyhedsbrev\"
sletbruger(mail)
end if   
end if
end if
Avatar billede runesoft Nybegynder
20. juli 2001 - 12:45 #1
Hvad siger den?
Avatar billede runesoft Nybegynder
20. juli 2001 - 12:46 #2
Du skal ikke bruge = men derimod LIKE
Avatar billede runesoft Nybegynder
20. juli 2001 - 12:48 #3
altså:

function Tjekemail(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
        sqlString=\"SELECT userid FROM users WHERE useremail LIKE \'\"& mail & \"\'\"
        Set RS = DBConn.Execute(sqlString)
       
        if RS.EOF then
        Tjek=1 \'hvis den ikke findes
        else
        Tjek=0 \'mailen findes
        end if
End function

\'Sletter bruger

function sletbruger(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
   
        DBConn.Execute \"DELETE FROM users WHERE useremail LIKE \'\"& mail & \"\'\"
        DBConn.Close
        Set DBConn = Nothing
end function

mail=request.form(\"mail\")
if mail=\"\" then
message=\"Du skal skrive en emailadresse!\"
else

Tjekemail(mail)
if Tjek=1 then
message=\"Det angivne emailadresse eksisterer ikke\"
else
if Tjek=0 then
message=\"Du vil nu ikke længere modtage vores nyhedsbrev\"
sletbruger(mail)
end if   
end if
end if
Avatar billede kragekjaer Praktikant
20. juli 2001 - 12:49 #4
Den skriver \"Du vil nu ikke længere modtage vores nyhedsbrev\" selv om mailen ikke findes. Der er det jo meningen at den skal cutte programmet og vende tilbage med beskeden: \"Det angivne emailadresse eksisterer ikke\"


Dog sletter den mailen hvis den findes.
Avatar billede runesoft Nybegynder
20. juli 2001 - 12:52 #5
function Tjekemail(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
        sqlString=\"SELECT userid FROM users WHERE useremail LIKE \'\"& mail & \"\'\"
        Set RS = DBConn.Execute(sqlString)
       
        if RS.EOF then
        Tjek=1 \'hvis den ikke findes
        else
        Tjek=0 \'mailen findes
        end if
Tjekemail= Tjek
End function

\'Sletter bruger

function sletbruger(mail)
        Set DBConn = Server.CreateObject(\"ADODB.Connection\")
        DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
   
        DBConn.Execute \"DELETE FROM users WHERE useremail LIKE \'\"& mail & \"\'\"
        DBConn.Close
        Set DBConn = Nothing
end function

mail=request.form(\"mail\")
if mail=\"\" then
message=\"Du skal skrive en emailadresse!\"
else

Tjek=Tjekemail(mail)
if Tjek=1 then
message=\"Det angivne emailadresse eksisterer ikke\"
else
if Tjek=0 then
message=\"Du vil nu ikke længere modtage vores nyhedsbrev\"
sletbruger(mail)
end if   
end if
end if
Avatar billede kragekjaer Praktikant
20. juli 2001 - 12:54 #6
Ok, prøver lidt senere...har lidt travlt nu, men tak.
Avatar billede runesoft Nybegynder
20. juli 2001 - 12:54 #7
eller bare indføre

dim Tjek

i toppen af din kode
Avatar billede dodger Nybegynder
20. juli 2001 - 13:03 #8
Du kunne også lave en count...

sqlString=\"SELECT COUNT(*) AS antal FROM users WHERE useremail LIKE \'\"& mail & \"\'\"

Så kan du se om rs(\"antal\") >= 1, og det fortæller om mail adressen eksisterer...
Ovenstående SQL vil altid returnere netop 1 resultat, uanset om brugeren står der 0, 1 eller flere gange, og så er du ikke afhængig af, om resultatsættet bliver EOF

just an idea...
Avatar billede runesoft Nybegynder
20. juli 2001 - 13:05 #9
dodger..  ja, men jeg tror ikke at det funger fordi Tjek kun er en lokal variabel i funktionen, og derfor bliver slettet, når funktionen er færdig med eksekvere
Avatar billede dodger Nybegynder
20. juli 2001 - 13:48 #10
det har du sgu nok ret i...
Jeg tror at runesoft har løst problemet d. 20/07 2001 12:52:56...

Avatar billede kragekjaer Praktikant
20. juli 2001 - 14:40 #11
Det virker sgu´, tak til alle!
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