Avatar billede kimborg Nybegynder
21. februar 2006 - 13:48 Der er 8 kommentarer og
1 løsning

Update af MySQL med brug af queryString går i fejl

Jeg forsøger at opdate nogle brugere ved hjælp af deres ID. Men den melder ved opdateringen...

FORMULAREN:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_xxxxx;UID=xxxx_xxxxx;PWD=xxxxxxxx;"

strSQL = "Select * From Brodre Where ID = " & Request.Querystring("ID")
Set rs = Conn.Execute(strSQL)

If RS.EOF Then
    Response.Write "Der var ingen brodre i databasen"
Else
    Do While NOT RS.EOF
%>
<form action="ret_bror2.asp" method="post">
<table>
<tr>
    <td width="90px">Fornavn:</td>
    <td width="165px"><input type="text" name="Fornavn" value="<%=RS("Fornavn")%>"><font color="#FF6600"> *</font></td>
    <td>Efternavn:</td>
    <td><input type="text" name="Efternavn" value="<%=RS("Efternavn")%>"><font color="#FF6600"> *</font></td>
</tr>
<tr>
    <td>Adresse:</td>
    <td><input type="text" name="Adresse" value="<%=RS("Adresse")%>"><font color="#FF6600"> *</font></td>
    <td>Nr:</td>
    <td><input type="text" name="Nr" value="<%=RS("Nr")%>"><font color="#FF6600"> *</font></td>
</tr>
<tr>
    <td>Postnr:</td>
    <td><input type="text" name="Postnr" value="<%=RS("Postnr")%>"><font color="#FF6600"> *</font></td>
    <td>Bynavn:</td>
    <td><input type="text" name="Bynavn" value="<%=RS("Bynavn")%>"><font color="#FF6600"> *</font></td>
</tr>
<tr>   
    <td>Fastnet:</td>
    <td><input type="text" name="Fastnet" value="<%=RS("Fastnet")%>"></td>
    <td>Mobil:</td>
    <td><input type="text" name="Mobil" value="<%=RS("Mobil")%>"><font color="#FF6600"> *</font></td>
</tr>
<tr>
    <td width="90px">Brugernavn:</td>
    <td width="165px"><input type="text" name="brugernavn" value="<%=RS("brugernavn")%>"><font color="#FF6600"> *</font></td>
    <td>Password:</td>
    <td><input type="text" name="password" value="<%=RS("password")%>"><font color="#FF6600"> *</font></td>
</tr>
<tr>
    <td width="90px">Email:</td>
    <td width="165px"><input type="text" name="Email" value="<%=RS("Email")%>"><font color="#FF6600"> *</font></td>
    <td>Godkendt:</td>
    <td><select size=1 name="Godkendt" class=box1>
        <option value="<%=RS("Godkendt")%>"><%=RS("Godkendt")%></option>
        <option value="Ja">Ret til -> Ja&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        <option value="Nej">Ret til -> Nej&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select><font color="#FF6600"> *</font></td>
</tr>
<tr>
    <td></td>
    <td><input type="submit" value="Ret bror" onClick="return confirm('Er du sikker på at du vil rette denne bror?'); history.go()"></td>
</tr>
<tr>
    <td colspan="2"><br><font size="2px"><i>Felter med <font color="#FF6600">*</font> <u>skal</u> være udfyldt</i></td></font>
</tr>
</table>
</form>
<%
    RS.MoveNext
  Loop
End If

Conn.Close
Set Conn = Nothing
%>



ret_bror2.asp:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_xxxxxx;UID=xxxx_xxxx;PWD=xxxxxxx;"

strSQL = "Update Brodre set WHERE ID = ' & Request.Querystring('ID') ("

strSQL = strSQL & "brugernavn, "
strSQL = strSQL & "password, "
strSQL = strSQL & "Email, "
strSQL = strSQL & "Fornavn, "
strSQL = strSQL & "Efternavn, "
strSQL = strSQL & "Adresse, "
strSQL = strSQL & "Nr, "
strSQL = strSQL & "Postnr, "
strSQL = strSQL & "Bynavn, "
strSQL = strSQL & "Fastnet, "
strSQL = strSQL & "Godkendt, "
strSQL = strSQL & "Mobil) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & request.form("brugernavn")& "', "
strSQL = strSQL & "'" & request.form("password")& "', "
strSQL = strSQL & "'" & request.form("Email")& "', "
strSQL = strSQL & "'" & request.form("Fornavn")& "', "
strSQL = strSQL & "'" & request.form("Efternavn")& "', "
strSQL = strSQL & "'" & request.form("Adresse")& "', "
strSQL = strSQL & "'" & request.form("Nr")& "', "
strSQL = strSQL & "'" & request.form("Postnr")& "', "
strSQL = strSQL & "'" & request.form("Bynavn")& "', "
strSQL = strSQL & "'" & request.form("Fastnet")& "', "
strSQL = strSQL & "'" & request.form("Godkendt")& "', "
strSQL = strSQL & "'" &  request.form("Mobil")& "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede ldanielsen Nybegynder
21. februar 2006 - 14:18 #1
Din strSQL kommer til at se sådan ud, ca.:

Update Brodre set WHERE ID = ' & Request.Querystring('ID')
  (brugernavn, password)
values
  ('brugernavnet', 'passwordet')

For det første er der en fejl omkring Request.Querystring("ID"), det skulle være:

strSQL = "Update Brodre set WHERE ID = " & Request.Querystring("ID") & " ("


Desuden ser en UPDATE sådan ud:

UPDATE Tabelnavn SET col1 = 'value', col2 = 'another value'
  WHERE ID = 999



Så du skulle gøre sådan:

strSQL = "Update Brodre SET "

strSQL = strSQL & "brugernavn = '" & request.form("brugernavn")& "'"
strSQL = strSQL & ", password= '" & request.form("password")& "'"
strSQL = strSQL & ", Email= '" & request.form("Email")& "'"
strSQL = strSQL & ", Fornavn= '" & request.form("Fornavn")& "'"

strSQL = strSQL & " WHERE ID = " & Request.Querystring('ID')
Avatar billede zappa Nybegynder
21. februar 2006 - 14:20 #2
Jeg mener ikke man kan opdatere på den måde:

strSQL = "Update Brodre set WHERE ID = ' & Request.Querystring('ID')...

Prøv med:

UPDATE TABLENAME SET FIELD1 = VALUE1, FIELD2=VALUE2...
osv... WHERE PRIMARYKEYFIELD = VALUE
Avatar billede zappa Nybegynder
21. februar 2006 - 14:21 #3
To minutter for sent. Øv. :)
Avatar billede kimborg Nybegynder
21. februar 2006 - 14:47 #4
Får nu denne fejl:

Error Type:
Sun ONE ASP VBScript compilation (0x800A03EA)
Syntax error, unexpected "new line"
/login/admin/ret_bror2.asp, line 37, column 61


Filen ser nu sådan ud:

strSQL = "Update Brodre SET "

strSQL = strSQL & "brugernavn = '" & request.form("brugernavn")& "'"
strSQL = strSQL & ", password= '" & request.form("password")& "'"
strSQL = strSQL & ", Email= '" & request.form("Email")& "'"
strSQL = strSQL & ", Fornavn= '" & request.form("Fornavn")& "'"
strSQL = strSQL & ", Efternavn= '" & request.form("Efternavn")& "'"
strSQL = strSQL & ", Adresse= '" & request.form("Adresse")& "'"
strSQL = strSQL & ", Nr= '" & request.form("Nr")& "'"
strSQL = strSQL & ", Postnr= '" & request.form("Postnr")& "'"
strSQL = strSQL & ", Bynavn= '" & request.form("Bynavn")& "'"
strSQL = strSQL & ", Fastnet= '" & request.form("Fastnet")& "'"
strSQL = strSQL & ", Mobil= '" & request.form("Mobil")& "'"
strSQL = strSQL & ", Godkendt= '" & request.form("Godkendt")& "'"

strSQL = strSQL & " WHERE ID = " & Request.Querystring('ID')

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede kimborg Nybegynder
21. februar 2006 - 18:26 #5
Slet ingen som kan hjælpe?????
Avatar billede kimborg Nybegynder
22. februar 2006 - 09:23 #6
Lukker...
Avatar billede ldanielsen Nybegynder
22. februar 2006 - 14:56 #7
Hvilken linie er linie 37
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:50 #8
Har fået rettet lidt i det min eneste fejl i denne linje:

strSQL = strSQL & " WHERE ID = " & request.form('ID')

komme med følgende fejlkode:

Syntax error, unexpected "new line"
/login/admin/ret_bror2.asp, line 34, column 54

Line 34 er: strSQL = strSQL & " WHERE ID = " & request.form('ID')
Avatar billede kimborg Nybegynder
22. februar 2006 - 19:02 #9
Har fået det løst nu...

Skulle bare være

strSQL = strSQL & " WHERE ID = " & request.form("ID")
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