Avatar billede gurvic Nybegynder
10. oktober 2003 - 13:33 Der er 44 kommentarer og
1 løsning

opdater i db

skal redigere en bruger men selve opdateringen til db sker ikke, hvad gør jeg galt. Håber der er nogen der kan hjælpe og gennemskue hvad jeg gør galt

min redigerbruger.html:

<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>

<h1>Rediger bruger</h1>

<form action='hentbruger.asp' method='post'><br>
Brugernavn<br><input type="text" name="NT"><br><br>
<input type='submit' value='Hent'>
<input type='reset' value='annuller'
</body>
</html>


min hentbruger.asp:


<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
Conn.Open DSN


strNT = Request.form("NT")
sql = "SELECT * FROM bruger Where UCase(brugernavn) = '" & Ucase(strNT) & "'"

set rest = Conn.execute(sql)

if Rest.eof then
    response.redirect("bminus.html")
    end if

Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"


rest.MoveNext
loop



Conn.close
set Conn=nothing
%>

<form action='redbruger.asp' method='get'>

<input type='submit' value='Gem'>
<input type='reset' value='Annuller'>
</form>

og min redbruger.asp:

<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
' Åbner databaseforbindelsen
Conn.Open DSN

strBR = replace(request.form("brun"),"'","''")
strAD = replace(request.form("adkode"), "'","''")
strTP = replace(request.form("tp"),"'","''")
strID = request.form("id")


'sql kald der henter alt fra tabel bruger, hvis at det indtastede login og password findes i tabellen, laver stort for at sikre sig
strSQL ="UPDATE bruger SET brugernavn ='" & strBR & "', adgangskode ='" & strAD &"', type ='" & strTP & "' WHERE brugernavn = '" & strID & "'"

Conn.Execute(strSQL)


Conn.close
set conn = nothing
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
opdateret
</body>
</html>
Avatar billede Slettet bruger
10. oktober 2003 - 13:35 #1
Kommer der nogen fejlmelding??

Og hvis ja, hvilken?
Avatar billede erikjacobsen Ekspert
10. oktober 2003 - 14:35 #2
strSQL ="UPDATE bruger SET brugernavn ='" & strBR & "', adgangskode ='" & strAD &"', type ='" & strTP & "' WHERE  XXXbrugernavnXXX = '" & strID & "'"

Jeg tror ikke dit feltnavn, som jeg har angivet som XXX....XXX er korrekt...
Avatar billede gurvic Nybegynder
10. oktober 2003 - 14:38 #3
nej den skriver opdateret men opdaterer ikke i db
Avatar billede gurvic Nybegynder
10. oktober 2003 - 14:40 #4
primærnøglen i min db er brugernavn, derfor jeg ville prøve at lave en opdate hvor den gør udfra brugernavnet
Avatar billede gurvic Nybegynder
10. oktober 2003 - 14:44 #5
tænkte lige jeg laver jo textfelterne sådan:

Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"
rest.MoveNext
loop

de textfelter overskriver jeg og det er det je gså prøver at opdatere db med, kan det være der jeg gør noget forkert?

ellers måske ved mine replace??
Avatar billede erikjacobsen Ekspert
10. oktober 2003 - 14:45 #6
Så man kan også ændre brugernavnet, ok ;)

Men du har da ingen <form> i hentbruger.asp
Avatar billede erikjacobsen Ekspert
10. oktober 2003 - 14:46 #7
Jeg mener: Du har ingen <form> pr bruger, og det skal du have.
Avatar billede gurvic Nybegynder
10. oktober 2003 - 14:49 #8
hvordan gør man det?
jeg henter jo kun en bruger og det er den ved det navn jeg indtaster i redigerbruger.html
er lidt lost her... sorry
Avatar billede sbm Nybegynder
10. oktober 2003 - 14:51 #9
Når du laver en UPDATE vil den forsøge at opdatere alle brugere med det brugernavn. Det kræver så igen at der rent faktisk FINDES en række hvor det brugernavn findes. Ellers vil den UPDATE gå fint med 0 updates.
Avatar billede erikjacobsen Ekspert
10. oktober 2003 - 14:53 #10
Men selv om der så kun er én, så skal felterne der bruges stå inden i en <form>
Avatar billede sbm Nybegynder
10. oktober 2003 - 14:53 #11
Jo, der ER et <form> tag, men det ligger KUN rundt om submit knappen. Det er jo en fejl. Det skal OGSÅ rundt om dine indtastningsfelter hvor du taster bruger oplysninger ind. :-)
Avatar billede sbm Nybegynder
10. oktober 2003 - 14:55 #12
erikjacobsen >> Der ER kun 1. Der er først en form hvor man taster brugernavnet ind. Så henter den data på side 2, hvor <form> tagget så fejlagtigt kun ligger rundt om submit-knappen, så den på side 3 forsøger at sætte alle felterne til en tom streng, hvor brugernavnet er = ''

:-)
Avatar billede gurvic Nybegynder
10. oktober 2003 - 14:55 #13
i de textfelter jeg har oprettet står der jo test - test - test - altså hvis det er den bruger jeg har søgt på. test er oprettet i db. jeg overskriver dem med f.eks test blah blah, men det sker ikke
Avatar billede sbm Nybegynder
10. oktober 2003 - 14:56 #14
if Rest.eof then
    response.redirect("bminus.html")
    end if

<<<<<<<<<<<<< HER SKAL DIT FORM TAG LIGGE!!! >>>>>>>>>>>>>>>>>>>>>
<form action='redbruger.asp' method='get'>


Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"
Avatar billede sbm Nybegynder
10. oktober 2003 - 14:57 #15
Ups. Du skal lige huske.....

response.write "<form action='redbruger.asp' method='get'>"
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:02 #16
altså så den ser sådan ud???

if Rest.eof then
    response.redirect("bminus.html")
    end if
%>
<form action='redbruger.asp' method='get'>
<input type='submit' value='Gem'>
<input type='reset' value='Annuller'>
</form>

    <%   
Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"


det virker stadig ikke
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:02 #17
ok havde ikke lige nået at se du skrev igen :) prøver lige
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:05 #18
Du skal huske at din FORM kun sender de data der ligger MELLEM dit <form> og slut-tagget </form>

De felter der ligger over eller under er ikke en del af formen, og bliver derfor ikke sendt med.
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:05 #19
det ændrer ikke noget
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:09 #20
Prøv at smide hele kildekoden til det sidste dokument på igen.
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:09 #21
Nej vrøvl. Dit ANDET dokument.
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:10 #22
a.k.a. hentbruger.asp
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:12 #23
hentbruger er den eneste jeg har ændret i den ser sådan ud nu

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
Conn.Open DSN


strNT = Request.form("NT")
sql = "SELECT * FROM bruger Where UCase(brugernavn) = '" & Ucase(strNT) & "'"

set rest = Conn.execute(sql)

if Rest.eof then
    response.redirect("bminus.html")
    end if
response.write "<form action='redbruger.asp' method='get'><input type = hidden name = test value = """ & rest("brugernavn") & """> <input type='submit' value='Gem'><input type='reset' value='Annuller'></form>"


Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"


rest.MoveNext
loop

Conn.close
set Conn=nothing
%>
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:13 #24
response.write "<form action='redbruger.asp' method='get'><input type = hidden name = test value = """ & rest("brugernavn") & """> <input type='submit' value='Gem'><input type='reset' value='Annuller'></form>"

.....skal ændres til.....

response.write "<form action='redbruger.asp' method='get'><input type = hidden name = test value = """ & rest("brugernavn") & """> <input type='submit' value='Gem'><input type='reset' value='Annuller'>"


.... og så skal du indsætte et.....

response.write "</form>"

til aller sidst lige efter dit loop
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:14 #25
hov den der input type hidden test ting i response.write(formen...) er en jeg lige har prøvet med, den var ikke med før
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:14 #26
Hmmm. Hvis det er hele dit dokument....

Sætter du aldrig <html> eller <body> tags?
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:16 #27
jo det sker da *gg* men det er kun asp  så troede ikke det var nødvendigt..
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:18 #28
hmm det virker heller ikke
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:19 #29
Nej, den skal naturligvis hedde brugernavn og ikke test.

Øhm... Jeg kan egentlig heller ikke få øje på noget sted hvor du henter data ud af din form....?
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:19 #30
Hov. My bad. Det gør du længere oppe.
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:21 #31
i redbruger.asp har jeg
strBR = replace(request.form("brun"),"'","''")
strAD = replace(request.form("adkode"), "'","''")
strTP = replace(request.form("tp"),"'","''")

er det det du mener?
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:23 #32
Yep. Jeg overså det. Som jeg skrev. My bad. :-)
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:24 #33
havde ikke lige nå at opdatere
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:24 #34
Din kommentar 15:16:36

Ja, men din ASP laver jo HTML, og den skal jo helst være nogenlunde korrekt. Der er flere fodfejl, men det er mindre vigtigt.

Har du prøvet at rykke dit </form> tag ned til efter loop?
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:26 #35
Jeg prøver lige som jeg mener den bør se ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
Conn.Open DSN


strNT = Request.form("NT")
sql = "SELECT * FROM bruger Where UCase(brugernavn) = '" & Ucase(strNT) & "'"

set rest = Conn.execute(sql)

if Rest.eof then
    response.redirect("bminus.html")
    end if
response.write "<form action='redbruger.asp' method='get'>"


Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"

rest.MoveNext
loop
response.write "<input type='submit' value='Gem'><input type='reset' value='Annuller'>"
response.write "</form>"
Conn.close
set Conn=nothing
%>
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:28 #36
Nu smider jeg sq et svar.
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:29 #37
ok prøver lige at smide den ind så

er forholdsvis nybegynder i asp.. nok derfor der er fodfejl.. sikkert mange af dem :)
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:32 #38
hmm det virker simpelthen ikke det må næsten være i redbruger.asp der er en fejl så
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:35 #39
Prøv at lægge alle dine filer her igen med en god synlig adskillelse.
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:36 #40
Hov. Prøv først at erstatte dine linier i redbruger.asp:

strBR = replace(request.form("brun"),"'","''")
strAD = replace(request.form("adkode"), "'","''")
strTP = replace(request.form("tp"),"'","''")
strID = request.form("id")


laver du om til


strBR = replace(request("brun"),"'","''")
strAD = replace(request("adkode"), "'","''")
strTP = replace(request("tp"),"'","''")
strID = request("id")
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:38 #41
redigerbruger.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>


<h1>Rediger bruger</h1>

<form action='hentbruger.asp' method='post'><br>
Brugernavn<br><input type="text" name="NT"><br><br>
<input type='submit' value='Hent'>
<input type='reset' value='annuller'

</body>
</html>













hentbruger.asp:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
Conn.Open DSN


strNT = Request.form("NT")
sql = "SELECT * FROM bruger Where UCase(brugernavn) = '" & Ucase(strNT) & "'"

set rest = Conn.execute(sql)

if Rest.eof then
    response.redirect("bminus.html")
    end if
response.write "<form action='redbruger.asp' method='get'>"


Do While Not Rest.EOF
response.write "<tr><td><input type=text name=brun value=""" & rest("brugernavn") & """></td></tr><tr><td><input type=text name=adkode value=""" & rest("adgangskode") & """></td></tr><tr><td><input type=text name=tp value=""" & rest("type") & """></td></tr><tr><td><input type=hidden name=id value=""" & rest("brugernavn") & """></td></tr>"

rest.MoveNext
loop
response.write "<input type='submit' value='Gem'><input type='reset' value='Annuller'>"
response.write "</form>"
Conn.close
set Conn=nothing
%>













redbruger.asp:

<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
' Åbner databaseforbindelsen
Conn.Open DSN

strBR = replace(request.form("brun"),"'","''")
strAD = replace(request.form("adkode"), "'","''")
strTP = replace(request.form("tp"),"'","''")
strID = request.form("id")


'sql kald der henter alt fra tabel bruger, hvis at det indtastede login og password findes i tabellen, laver stort for at sikre sig
strSQL ="UPDATE bruger SET brugernavn ='" & strBR & "', adgangskode ='" & strAD &"', type ='" & strTP & "' WHERE brugernavn = '" & strID & "'"

Conn.Execute(strSQL)


Conn.close
set conn = nothing
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
opdateret
</body>
</html>
Avatar billede sbm Nybegynder
10. oktober 2003 - 15:38 #42
Læste du det jeg skrev lige efter jeg bad dig smide dem på igen?
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:40 #43
nej det gjorde jeg ikke sorry.. prøver
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:41 #44
redbruger.asp ser så sådan ud



<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("C:\Inetpub\wwwroot\hovedopgave\koden\ellebo.mdb")
' Åbner databaseforbindelsen
Conn.Open DSN


strBR = replace(request("brun"),"'","''")
strAD = replace(request("adkode"), "'","''")
strTP = replace(request("tp"),"'","''")
strID = request("id")


'sql kald der henter alt fra tabel bruger, hvis at det indtastede login og password findes i tabellen, laver stort for at sikre sig
strSQL ="UPDATE bruger SET brugernavn ='" & strBR & "', adgangskode ='" & strAD &"', type ='" & strTP & "' WHERE brugernavn = '" & strID & "'"

Conn.Execute(strSQL)


Conn.close
set conn = nothing
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>
<body>
opdateret
</body>
</html>
Avatar billede gurvic Nybegynder
10. oktober 2003 - 15:42 #45
så virker
super mange gange tak for hjælpen
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