Avatar billede zipper20 Nybegynder
24. november 2003 - 16:44 Der er 43 kommentarer og
1 løsning

Opdatere ét felt i Access db

Jeg har denne kode :

<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
SQL = "UPDATE billeder Set tekst = '" & request.form("tekst") & "' "
Myconn.Execute(SQL)

Response.Redirect("adminimg.asp")
%>

Til at opdatere "tekst" i min [billeder] tabel, men når jeg skriver noget nyt forsvinder tekst for alle billeder og ikke kun det ene jeg har valgt.

--- jeg vælger hvilken post jeg vil ændre med :
<A href="retimg.asp?id=<%=data("id")%>"><img src="ret.gif"></A>

Hvorfor ændres alle posterne og ikke kun det ene ???
Avatar billede deeflate Nybegynder
24. november 2003 - 16:48 #1
SQL = "UPDATE billeder Set tekst = '" & request.form("tekst") & "' WHERE id = " & request.querystring("id")
Avatar billede zipper20 Nybegynder
24. november 2003 - 16:51 #2
Hvad skal jeg så skrive for at få ID med som querystring ? Den følger ikke med ...
Avatar billede deeflate Nybegynder
24. november 2003 - 16:51 #3
Som din SQL-streng er lige nu, får du ikke specificeret hvilken post der skal rettes i.
Avatar billede zipper20 Nybegynder
24. november 2003 - 16:52 #4
Nej... jeg kan godt se det du mener, men jeg skal stadig have ID defineret til min "retimg.asp" som jeg har rettet...
Avatar billede deeflate Nybegynder
24. november 2003 - 16:52 #5
Det skulle den gerne være allerede - ser da sådan ud på dit link...
Avatar billede zipper20 Nybegynder
24. november 2003 - 16:53 #6
<A href="retimg.asp?id=<%=data("id")%>"><img src="ret.gif"></A>
            linker til en retside med tekstbokse hvor jeg får præsenteret indholdet af [tekst]... det virker, men når jeg ændrer det og trykker opdater sender den videre til:

SQL = "UPDATE billeder Set tekst = '" & request.form("tekst") & "' WHERE id = " & request.querystring("id")

men der er ID ikke gældende mere... mener jeg... der sker i hvert fald ikke noget.
Avatar billede zipper20 Nybegynder
24. november 2003 - 16:54 #7
Okay never mind.. det står der allerede...
Avatar billede deeflate Nybegynder
24. november 2003 - 16:57 #8
OK, der hvor du sender videre skal du så også inkludere id'en i URL som du gjorde det før.

Hvis det er en form du submitter skal du i form-tagget indsætte

action="adresse.asp?id<%=request.querystring("id")%>"

eller

action='adresse.asp?id=" & request.querystring("id") & "'
Avatar billede deeflate Nybegynder
24. november 2003 - 16:57 #9
Hehe - er åbenbart ikke god nok til at opdatere før jeg udfører ;)
Avatar billede zipper20 Nybegynder
24. november 2003 - 17:20 #10
Det har jeg...

<FORM ACTION="updateimg.asp?id=<%=Request.Querystring("id")%>" METHOD="POST">
Avatar billede zipper20 Nybegynder
24. november 2003 - 17:22 #11
Okay...
Liste over poster:
<%
While NOT data.EOF
%>
    <TR>
        <TD WIDTH="10%"><FONT SIZE="2" FACE="System"><% = data.Fields ("nr")%></FONT></TD>
        <TD WIDTH="25%"><FONT SIZE="2" FACE="System"><% = data.Fields ("tekst")%></FONT></TD>
        <TD WIDTH="55%"><FONT SIZE="2" FACE="System">
<A href="retimg.asp?id=<%=data("id")%>"><img src="ret.gif"></A></FONT></TD>
        </TR>
       
    </TD>
</TR>

<%
data.MoveNext
Wend
%>
--------VIRKER!
---------------
Side hvor man retter [tekst]

<FORM ACTION="updateimg.asp?id=<%=Request.Querystring("id")%>" METHOD="POST">
    <TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" WIDTH="54%">
<TR>
<TD WIDTH="34%" BGCOLOR="#99CCFF" style="border-top;bottom:solid black 1px;">
    <FONT SIZE="2" FACE="Arial"><I>Placering</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#99CCFF"><% = data.Fields ("nr")%></TD>
</TR>
<TR>
<TD WIDTH="34%" BGCOLOR="#FFCC99"><FONT SIZE="2" FACE="Arial"><I>Tekst</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#FFCC99"><INPUT TYPE="TEXT" VALUE="<% = data.Fields ("tekst")%>" NAME="navn" SIZE="25"></TD>
</TR>
------------
------------

Update.asp
<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
SQL = "UPDATE billeder Set tekst = '" & request.form("tekst") & "' WHERE id = " & request.querystring("id")
Myconn.Execute(SQL)

Response.Redirect("adminimg.asp")
%>
------------
------------
Avatar billede zipper20 Nybegynder
24. november 2003 - 17:37 #12
Okay... har rettet lidt... nu får jeg følgende...

Microsoft JET Database Engine error '80040e14'

Syntax error in string in query expression 'id = "'.

/updateimg.asp, line 7
-------------------------
Linie 7 : Myconn.Execute(SQL)
Avatar billede zipper20 Nybegynder
24. november 2003 - 17:56 #13
Jeg har prøvet ALT muligt, men jeg får stadig samme fejl...
Hvad kan der være galt ??? Please help... er lidt presset *GG*
Avatar billede deeflate Nybegynder
24. november 2003 - 18:16 #14
Og id er af datatypen tal, ikke?
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:18 #15
id er autonum, så jo... tal
----------- Her er en update fil jeg bruger til noget anden på sitet som virker...  hvordan laver jeg det om til at den kun opdaterer feltet tekst i tabellen billeder ???
Hvis det hjælper...
<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
SQL = "UPDATE cms SET [title] = '" & request.form("title") & "', "
SQL = SQL & "[contxt] = '" & request.form("contxt")  & "' "
SQL = SQL & "WHERE id = " & Request.QueryString("id")
Myconn.Execute(SQL)


Response.Redirect("admincms.asp")
%>
Avatar billede deeflate Nybegynder
24. november 2003 - 18:35 #16
SQL = "UPDATE billeder SET [tekst] = '" & request.form("tekst") & "' "
SQL = SQL & "WHERE id = " & Request.QueryString("id")
Myconn.Execute(SQL)
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:35 #17
Nej...

Microsoft JET Database Engine error '80040e14'

Syntax error in string in query expression 'id = "'.

/updateimg.asp, line 8
Avatar billede deeflate Nybegynder
24. november 2003 - 18:36 #18
Det giver jo lidt det samme...
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:38 #19
Side 1
<A href="retimg.asp?id=<%=data("id")%>"><img src="ret.gif"></A>
Side 2 (retimg.asp)
<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * From billeder Where id ="& Request.QueryString("id") &"", MyConn
%>
'kode
'kode
<FORM action='updateimg.asp?id=" & request.querystring("id") & "' METHOD="POST">
Side 3 (updateimg.asp)
<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
SQL = "UPDATE billeder SET [tekst] = '" & request.form("tekst") & "' "
SQL = SQL & "WHERE id = " & Request.QueryString("id")
Myconn.Execute(SQL)


Response.Redirect("admincms.asp")
%>

Det er alt den referance jeg har på mine sider... jeg kan sQ ikke finde fejlen...
Avatar billede deeflate Nybegynder
24. november 2003 - 18:43 #20
OK, så må vi prøve en anden tilgang.
Prøv at opdatere sådan her

Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * From billeder Where id ="& Request.QueryString("id") &"", MyConn, 2, 2

data("tekst") = request.form("tekst")
data.update

data.close
set data = Nothing
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:44 #21
Ehh... hvilken fil ?
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:46 #22
Hov... never mind.. sidder og sover *GG*
Avatar billede deeflate Nybegynder
24. november 2003 - 18:47 #23
updateimg.asp

Du kan sådan set også bare lade være med at gå videre til en ny fil (efter submit) og så i retimg.asp tilføje (efter du har åbnet data)

If request.ServerVariables("REQUEST_METHOD") = "POST" then

  data("tekst") = request.form("tekst")
  data.update

end if
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:48 #24
Hvad skriver jeg så i ACTION="  ??
Avatar billede deeflate Nybegynder
24. november 2003 - 18:51 #25
action='retimg.asp?id=" & request.querystring("id") & "'

Så er du sikker på at querystringen kommer med igen
Avatar billede zipper20 Nybegynder
24. november 2003 - 18:54 #26
Okay...
retimg.asp ser sådan ud nu...

<!--#include file="connect.asp"-->

<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * From billeder Where id ="& Request.QueryString("id") &"", MyConn
%>

<HTML>

<HEAD>

<style type="text/css">

body {
    background-color: #FFFFFF;
    background-image: url("bg_img.gif");
    background-repeat: no-repeat;
    background-attachment: fixed;
}
</STYLE>

</HEAD>

<BODY>

<P>
<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="1" WIDTH="100%">
    <TR>
        <TD WIDTH="62%" BGCOLOR="#D1CAA9" style="border:solid black 1px;">
            <P ALIGN="RIGHT"><FONT FACE="Arial"><B>Billede administrator
<BR>
</B></FONT>
        </TD>
        <TD WIDTH="38%">&nbsp;</TD>
    </TR>
    <TR>
    <TD WIDTH="62%" style="border:solid black 1px;"><FONT SIZE="2" FACE="Arial">
<FORM action='retimg.asp?id=" & request.querystring("id") & "' METHOD="POST">
    <TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" WIDTH="54%">
<TR>
<TD WIDTH="34%" BGCOLOR="#99CCFF" style="border-top;bottom:solid black 1px;">
    <FONT SIZE="2" FACE="Arial"><I>Placering</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#99CCFF"><% = data.Fields ("nr")%></TD>
</TR>
<TR>
<TD WIDTH="34%" BGCOLOR="#FFCC99"><FONT SIZE="2" FACE="Arial"><I>Tekst</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#FFCC99"><INPUT TYPE="TEXT" VALUE="<% = data.Fields ("tekst")%>" NAME="tekst" SIZE="25"></TD>
</TR>
<TR>
        <TD WIDTH="34%"><I>&nbsp;</I></TD>
        <TD WIDTH="66%"><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Opdatér"></TD>
    </TR>
</TABLE></TD>
        <TD WIDTH="38%">&nbsp;</TD>
    </TR>
</TABLE>
<%
If request.ServerVariables("REQUEST_METHOD") = "POST" then

  data("tekst") = request.form("tekst")
  data.update

end if
%>

</BODY>

</HTML>

Fejl :

Microsoft JET Database Engine error '80040e14'

Syntax error in string in query expression 'id ="'.

/retimg.asp, line 13
Avatar billede deeflate Nybegynder
24. november 2003 - 19:01 #27
data.Open "SELECT * From billeder Where id =" & Request.QueryString("id"), MyConn, 2, 2
Avatar billede zipper20 Nybegynder
24. november 2003 - 19:02 #28
Microsoft JET Database Engine error '80040e14'

Syntax error in string in query expression 'id ="'.

/retimg.asp, line 13
Avatar billede zipper20 Nybegynder
24. november 2003 - 19:03 #29
Jeg har også en nr post, men den skal ikke kunne ændres, så den har vel ikke noget med det at gøre.. ?
Avatar billede deeflate Nybegynder
24. november 2003 - 19:03 #30
Det var da ligegodt mystisk...

Og du har prøvet at udskrive request.querystring("id"), ikke?

Så det er ikke fordi den er tom eller noget, vel?
Avatar billede deeflate Nybegynder
24. november 2003 - 19:05 #31
Er din nr post unik? For så kan du ligesågodt sortere på den som på id.
Avatar billede zipper20 Nybegynder
24. november 2003 - 19:06 #32
Ja, det er den ... men alphanum...

ex. prof1, prof2, prof3, tilb1, tilb2 osv...
men unik
Avatar billede deeflate Nybegynder
24. november 2003 - 19:09 #33
Det gør ikke spor - den kan du godt bruge.

Men jeg kan stadig ikke forstå at det andet giver problemer - det er meget mystiskt...

Jeg er desværre nødt til at smutte nu, men jeg håber meget, du finder fejlen.
Post endelig, når du ved, hvad det er.
Avatar billede zipper20 Nybegynder
24. november 2003 - 19:09 #34
Oki... tak for hjælpen... jeg kæmper videre ...
Avatar billede zipper20 Nybegynder
24. november 2003 - 19:13 #35
F*** this sh**

Jeg booster lige til 200 pts. PLEASE HELP... come on gutter... :-)
Avatar billede deeflate Nybegynder
24. november 2003 - 21:45 #36
Så er jeg tilbage - har fundet fejlen.
Avatar billede deeflate Nybegynder
24. november 2003 - 21:50 #37
Du udskriver formen i html ikke asp, derfor skal du udskifte

<FORM action='retimg.asp?id=" & request.querystring("id") & "' METHOD="POST">

med

<FORM action='retimg.asp?id=<%=request.querystring("id")%>' METHOD="POST">

Hvis du havde forsøgt at udskrive request.querystring("id"), ville du også have set, at den var tom - netop fordi den ikke bliver sendt med anden gang.
Avatar billede deeflate Nybegynder
24. november 2003 - 21:53 #38
Jeg har testet lidt her, og følgende virker:

<!--#include file="connect.asp"-->

<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * From billeder Where id ="& Request.QueryString("id") &"", MyConn, 2, 2
%>

<HTML>

<HEAD>

<style type="text/css">

body {
    background-color: #FFFFFF;
    background-image: url("bg_img.gif");
    background-repeat: no-repeat;
    background-attachment: fixed;
}
</STYLE>

</HEAD>

<BODY>

<P>
<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="1" WIDTH="100%">
    <TR>
        <TD WIDTH="62%" BGCOLOR="#D1CAA9" style="border:solid black 1px;">
            <P ALIGN="RIGHT"><FONT FACE="Arial"><B>Billede administrator
<BR>
</B></FONT>
        </TD>
        <TD WIDTH="38%">&nbsp;</TD>
    </TR>
    <TR>
    <TD WIDTH="62%" style="border:solid black 1px;"><FONT SIZE="2" FACE="Arial">
<FORM action='zipper.asp?id=<%=request.querystring("id")%>' METHOD="POST">
    <TABLE BORDER="0" CELLPADDING="3" CELLSPACING="0" WIDTH="54%">
<TR>
<TD WIDTH="34%" BGCOLOR="#99CCFF" style="border-top;bottom:solid black 1px;">
    <FONT SIZE="2" FACE="Arial"><I>Placering</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#99CCFF"><%= data.Fields ("nr")%></TD>
</TR>
<TR>
<TD WIDTH="34%" BGCOLOR="#FFCC99"><FONT SIZE="2" FACE="Arial"><I>Tekst</I></FONT></TD>
<TD WIDTH="66%" BGCOLOR="#FFCC99"><INPUT TYPE="TEXT" VALUE="<% = data.Fields ("tekst")%>" NAME="tekst" SIZE="25"></TD>
</TR>
<TR>
        <TD WIDTH="34%"><I>&nbsp;</I></TD>
        <TD WIDTH="66%"><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Opdatér"></TD>
    </TR>
</TABLE></TD>
        <TD WIDTH="38%">&nbsp;</TD>
    </TR>
</TABLE>
<%
If request.ServerVariables("REQUEST_METHOD") = "POST" then

  data("tekst") = request.form("tekst")
  data.update

  data.close
  set data = Nothing

  Response.Redirect("admincms.asp")

end if

data.close
set data = Nothing
%>

</BODY>

</HTML>
Avatar billede zipper20 Nybegynder
25. november 2003 - 08:17 #39
<FORM action='zipper.asp?id=<%=request.querystring("id")%>' METHOD="POST">

zipper.asp ??? Jeg får bare en "Siden er ikek fundet"...
Avatar billede deeflate Nybegynder
25. november 2003 - 10:26 #40
hehe - det er fordi jeg testede lidt her ;)
Det skal selvfølgelig skiftes ud med
<FORM action='retimg.asp?id=<%=request.querystring("id")%>' METHOD="POST">  som jeg skrev i min 24/11-2003 21:50:04
Avatar billede zipper20 Nybegynder
25. november 2003 - 11:18 #41
Altså... du be'r mig om at indsætte
<FORM action='retimg.asp?id=<%=request.querystring("id")%>' METHOD="POST">

i retimg.asp ??? Jeg kan ikke se logikken men prøver lige om lidt...
:-)
Avatar billede deeflate Nybegynder
25. november 2003 - 11:24 #42
Logikken er at jeg har flyttet det stykke kode, der opdaterer, ind i retimg.asp og at du derfor ikke skal sendes videre.
Det er det der står forneden i

If request.ServerVariables("REQUEST_METHOD") = "POST" then
  ...
end if
Avatar billede zipper20 Nybegynder
25. november 2003 - 16:27 #43
Åh frelser... dit navn være deeflate *GG* Takker... smid lige et svar
Avatar billede deeflate Nybegynder
25. november 2003 - 16:34 #44
Svar :D
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