Avatar billede Keld Nielsen Professor
09. august 2003 - 11:02 Der er 4 kommentarer og
1 løsning

Login og rettelser i database

Blot som en start -> jeg er total nybegynder på ASP, men et sted skal man jo starte, og det er med at læse osv.

Jeg prøver at lave en lille database, hvor man kan rette i.
Det er lykkedes mig at få lavet så man kan taste oplysninger ind, se nedenstående koder.

Nu ville jeg gerne, ved at indtaste bruger og password at man så kunne rette sine oplysninger.

Er der en som har løsningen, det er vist noget med update osv osv.



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

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive 6">
        <title>Welcome to Adobe GoLive 6</title>
    </head>

    <body bgcolor="#ffffff" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
        <form action="doit.asp" method="post" name="dff_ind">
            Test
            <p>Bruger  <input type="text" name="bruger" size="24" tabindex="1"></p>
            <p>Password  <input type="password" name="password" size="24" tabindex="2"></p>
            <p>Gruppe <input type="text" name="gruppe" size="24" tabindex="3"></p>
            <p>Pris 1  <input type="text" name="pris1" size="24" tabindex="4"></p>
            <p>Pris 2  <input type="text" name="pris2" size="24" tabindex="5"></p>
            <p>Pris 3  <input type="text" name="pris3" size="24" tabindex="6"></p>
            <p><input type="submit" name="submit" value="Inds&aelig;t data" tabindex="7"></p>
        </form>
        <table width="606" border="0" cellspacing="0" cellpadding="0" cool gridx="16" gridy="16" height="380" showgridx showgridy usegridx usegridy>
            <tr height="379">
                <td width="605" height="379"></td>
                <td width="1" height="379"><spacer type="block" width="1" height="379"></td>
            </tr>
            <tr height="1" cntrlrow>
                <td width="605" height="1"><spacer type="block" width="605" height="1"></td>
                <td width="1" height="1"></td>
            </tr>
        </table>
        <p></p>
    </body>

</html>

-----
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\web\prolight.dk\database\analyse.mdb"
Conn.Open DSN

strSQL = "Insert into dffanalyse ("

strSQL = strSQL & "bruger, "
strSQL = strSQL & "password, "
strSQL = strSQL & "gruppe, "
strSQL = strSQL & "pris1, "
strSQL = strSQL & "pris2, "
strSQL = strSQL & "pris3) "

strSQL = strSQL & "values ( "

strSQL = strSQL & "'" & Request.Form("bruger") & "', "
strSQL = strSQL & "'" & Request.Form("password") & "', "
strSQL = strSQL & "'" & Request.Form("gruppe") & "', "

strSQL = strSQL & "'" & Request.Form("pris1") & "', "
strSQL = strSQL & "'" & Request.Form("pris2") & "', "
strSQL = strSQL & "'" & Request.Form("pris3") & "')"

Response.Write(strSQL)
Conn.Execute(strSQL)
%>
Avatar billede eagleeye Praktikant
09. august 2003 - 11:18 #1
Så må du lave en login side, og tjekke om brugeren findes i databasen, hvis brugeren findes så gem brugerID i session så du ved hvem der er logget ind. Så lav et redirect til en side hvor form'en er man skal skrive i.

På den side hendter du først alle de oplysninger som brugeren må rette.

SQL = "SELECT * FROM dffanalyse WHERE brugerID = " & Session("ID")
set rs = CONN.Execute(SQL)

Så på dine input felter skal du havde en value på, så den automatisk udfylder feltet med det som er i databasen:

<p>Bruger  <input type="text" name="bruger" size="24" tabindex="1"></p>

Til:
<p>Bruger  <input type="text" name="bruger" size="24" tabindex="1" value="<%=rs("bruger")%>"></p>

osv, med de andre felter.

Typisk vil man så tilføje et hidden felt på form'en som indeholder ID på brugern som skal rettes, det id ligger osgås i session så det ikke stringt nødvendigt, men vil se sådan her ud:
<input type="hidden" name="id" value="<%=session("id")%>">



Til sidst så skal du rette SQL så den laver en UPDATE for syntax kig her:
http://www.w3schools.com/sql/sql_update.asp  eller her
http://www.html.dk/tutorials/asp/lektion22.asp

Så din SQL vil blive noget med



strSQL = "update dffanalyse set "
strSQL = strSQL & "bruger = '" & Request.Form("bruger") & "', "
strSQL = strSQL & "password = '" & Request.Form("password") & "', "
strSQL = strSQL & "gruppe = '" & Request.Form("gruppe") & "', "
strSQL = strSQL & "pris1 = '" & Request.Form("pris1") & "', "
strSQL = strSQL & "pris2 = '" & Request.Form("pris2") & "', "
strSQL = strSQL & "pris3 = '" & Request.Form("pris1") & "' "
strSQL = strSQL & " WHERE brugerID = " & Session("ID")
Avatar billede Keld Nielsen Professor
10. august 2003 - 17:47 #2
Jeg får flg. fejl nu:

Update dffanalyse setpris1 ='123', pris2 ='350', pris3 ='500'WHERE ID = 3
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/analyse/updateit.asp, line 15

updateit.asp ser sådan ud:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\web\prolight.dk\database\analyse.mdb"
Conn.Open DSN

strSQL = "Update dffanalyse set "

strSQL = strSQL & "pris1 ='" & Request.Form("pris1") & "', "
strSQL = strSQL & "pris2 ='" & Request.Form("pris2") & "', "
strSQL = strSQL & "pris3 ='" & Request.Form("pris3") & "'"
strSQL = strSQL & "WHERE ID = " & Session("ID")

Response.Write(strSQL)
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
10. august 2003 - 17:50 #3
Der mangler måske et mellemrum før WHERE måske det kan give fejlen:

strSQL = strSQL & "WHERE ID = " & Session("ID")

->

strSQL = strSQL & " WHERE ID = " & Session("ID")
Avatar billede eagleeye Praktikant
10. august 2003 - 17:51 #4
Hedder din autonummer kolonne ID?
Avatar billede Keld Nielsen Professor
10. august 2003 - 18:02 #5
Masser af tak for hjælpen
... du har givet mig mod på at fortsætte i det for mig nye område !
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