Avatar billede kimborg Nybegynder
22. februar 2006 - 16:54 Der er 22 kommentarer og
1 løsning

Opdatering af profiler

Jeg kan ikke få nedenstående til at virke, skal kun opdatere ud fra denne: strSQL = strSQL & " WHERE ID = " & Request.Querystring('ID').

Nogle som kan se fejlen??



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 nielle Nybegynder
22. februar 2006 - 17:31 #1
Et hurtigt bud er at "password" er et reserveret ord i Access (for det er da Access vi snakker om?), og at du derfor skal ændre:

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

- til:

strSQL = strSQL & ", [password]= '" & request.form("password") & "'"

Hvis ikke det hjælper, så må du meget gerne beskrive hvad der går galt. Fejlkoder og den slags...
Avatar billede kimborg Nybegynder
22. februar 2006 - 17:37 #2
Det er MySql, har ikke adgang til access.

Dette er fejlteksten:

Error Type:
ADODB.Connection.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Where ID = ''' at line 1
/login/admin/ret_bror2.asp, line 37
Avatar billede nielle Nybegynder
22. februar 2006 - 17:40 #3
Fejlbeskeden tyder på at din Request.Querystring('ID') ikke har en værdi.

Prøv at udskrive SQL-strengen før du udføre den:

strSQL = strSQL & " WHERE ID = " & Request.Querystring('ID')
Response.Write "DEBUG: " & strSQL & "<br>"
Conn.Execute(strSQL)

- og tjek så om det ikke er tilfældet.
Avatar billede kimborg Nybegynder
22. februar 2006 - 17:45 #4
Fejlen ser nu sådan ud:

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


Filen ser nu sådan ud:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxxx_brodre;UID=xxxxx_xxxx;PWD=xxxxxx;"

strSQL = "Update Brodre SET "
strSQL = strSQL & " WHERE ID = " & Request.Querystring('ID')
Response.Write "DEBUG: " & strSQL & "<br>"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede nielle Nybegynder
22. februar 2006 - 17:49 #5
Denne linje:

Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxxx_brodre;UID=xxxxx_xxxx;PWD=xxxxxx;"

- skal være ud i ét - den må ikke være brudt over 2 linjer.
Avatar billede kimborg Nybegynder
22. februar 2006 - 17:53 #6
Det er også kun her på E at vises på 2 linier, har lavet andre sider som sletter og opretter mine brugere fint nok, men opdateringen går bare i fisk...
Avatar billede kimborg Nybegynder
22. februar 2006 - 17:59 #7
Den forrige side ser således ud:

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 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
%>
Avatar billede nielle Nybegynder
22. februar 2006 - 18:08 #8
1) Fejlen du beskriver i 22/02-2006 17:45:43 skyldes at der er et eller andet5 galt med din linje 22. Uden at vide hvordan den ser ud, kan jeg ikke sige noget nærmere.

2) Din form overføre ikke værdien af ID til den næste side når du submitter den. Normalt ville man sikre dette ved at tilføje et hidden-felt i formen:

<input type="hidden" name="id" value="<%=Request.Querystring("ID")%>">

3) Da din form submitter med method="post", skal id hentes via Request.Form() i stedet for Request.QueryString():

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

- skal altså rettes til:

strSQL = strSQL & " WHERE ID = " & Request.Form('ID')
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:16 #9
Ahh... så langt så godt, jeg mangler nu kun at få rettet denne da den stadig er indeholder fejl:

strSQL = strSQL & " WHERE ID = " & Request.form('ID')  & "', "
Avatar billede nielle Nybegynder
22. februar 2006 - 18:21 #10
Er dit ID da ikke et tal siden at du sætter '-tegn rundt om det?

Bortset fra det, så er fejlen nok det komma du har fået for meget med i enden:

strSQL = strSQL & " WHERE ID = " & Request.form('ID') & "'"
Avatar billede nielle Nybegynder
22. februar 2006 - 18:22 #11
Hmm, mon ikke det sidste led skal helt væk:

strSQL = strSQL & " WHERE ID = " & Request.form('ID')
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:25 #12
har jeg prøvet, men så får jeg bare denne fejl og
line 34 er: strSQL = strSQL & " WHERE ID = " & Request.form('ID'):

Syntax error, unexpected "new line"
/login/admin/ret_bror2.asp, line 34, column 54
Avatar billede nielle Nybegynder
22. februar 2006 - 18:27 #13
Har du det der :-tegn i enden af din linje?
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:30 #14
nope, ser bare sådan her ud:

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

har også prøvet med:

strSQL = strSQL & " WHERE ID = " & Request.form('ID') & "
Avatar billede nielle Nybegynder
22. februar 2006 - 18:31 #15
Ja, den sidste bør absolut give en fejl.

Du bliver nok nødt til at poste noget mere af din kode, hvis jeg skal kunne finde fejlen for dig. :^)
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:33 #16
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=mydb3.surf-town.net;DATABASE=xxxx_brodre;UID=xxxx_xxxx;PWD=xxxxxx;"

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.form('ID')

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
</div>
</div>
</body>
</html>
Avatar billede nielle Nybegynder
22. februar 2006 - 18:40 #17
1) Der er ingen ASP fejl i den kode. Derfor må det være noget længere oppe (eller nede). Jeg kan heller ikke få det til at stemme med at den brokker sig over linje 34 (ergo må der være noget mere).

2) Selv om der ille er no9gen ASP-fejl, så var der faktisk en SQL-fejl. Du skal rette:

strSQL = strSQL & "Godkendt= '" & request.form("Godkendt")  & "', "

- til:

strSQL = strSQL & "Godkendt= '" & request.form("Godkendt")  & "' "
Avatar billede nielle Nybegynder
22. februar 2006 - 18:41 #18
Stavefejl er gratis :^|
Avatar billede kimborg Nybegynder
22. februar 2006 - 18:48 #19
Er rettet nu, men virker stadig ikke, jeg er helt blank... :o(

Men tak for det andet, nu er jeg da lidt tættere ;O)
Avatar billede nielle Nybegynder
22. februar 2006 - 18:51 #20
Prøv forresten lige at ændre:

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

- til:

strSQL = strSQL & " WHERE ID =  " & Request.form("ID")
Avatar billede nielle Nybegynder
22. februar 2006 - 18:56 #21
Jeg kan se at det var mig selv som fik indført den fejl (i 22/02-2006 18:08:43). Det må du undskylde. :^|
Avatar billede kimborg Nybegynder
22. februar 2006 - 19:01 #22
Hehe... synes jeg havde prøvet det også, men virker skidtet sgu, mange tak ;O)

smider du ikke lige et svar?
Avatar billede nielle Nybegynder
22. februar 2006 - 20:33 #23
S'gerne :^)
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