Avatar billede l_otto Nybegynder
08. juni 2006 - 22:53 Der er 22 kommentarer og
1 løsning

check om record allerede findes

til madeindk
Avatar billede l_otto Nybegynder
08. juni 2006 - 22:53 #1
<%
if isNumeric(Request.Form("pris")&"") AND request.form("update") <> "" then

strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
Set rs = DataConn.Execute(strSQL)

Alert = "Prisen er nu opdateret "

else

if request.form("update") <> "" then
Alert = "Du skal angive pris som et tal"
end if

end if

strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
%>
Kommentar: l_otto
08/06-2006 22:28:11 og så skal jeg have et svar ... sådan jubii og 1000000 tak
Accepteret svar: madeindk
08/06-2006 22:28:46
Point: 30,00 Det var godt, vi fik det til at virke :-)

Men her er svaret.
Kommentar: l_otto
08/06-2006 22:40:07 ja så skal jeg lige have denne chekker ind som gør at man ikke kan rettet til en pris der allerede er oprettet

strSQL = "Select pris From pris Where pris = '" & replace(Request.Form("pris"),"'","''") & "';"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then


Alert = "Du har allerede oprettet den pris, prøv igen"
Avatar billede madeindk Nybegynder
08. juni 2006 - 23:01 #2
<%
SQL = "Select pris From pris Where pris = '" & replace(Request.Form("pris"),"'","''") & "';"
set rst = DataConn.Execute (strSQL)

do until rst.eof

if Cstr(rst("id")) = Cstr(request.querystring("id")) then
Alert = "Du har allerede oprettet den pris, prøv igen"
response.redirect("default.asp")
end If

rst.MoveNext
Loop
%>
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:04 #3
den skal med ind i denne kode :-)

<%
if isNumeric(Request.Form("pris")&"") AND request.form("update") <> "" then

strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
Set rs = DataConn.Execute(strSQL)

Alert = "Prisen er nu opdateret "

else

if request.form("update") <> "" then
Alert = "Du skal angive pris som et tal"
end if

end if

strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
%>
Avatar billede madeindk Nybegynder
08. juni 2006 - 23:06 #4
Prøv evt. med følgende - kan ikke garantere det virker, da det ikke er testet.

<%
if isNumeric(Request.Form("pris")&"") AND request.form("update") <> "" then

' Tjekker om den allerede eksisterer
SQL = "Select pris From pris Where pris = '" & replace(Request.Form("pris"),"'","''") & "';"
set rst = DataConn.Execute (strSQL)

do until rst.eof

if Cstr(rst("id")) = Cstr(request.querystring("id")) then
response.redirect("default.asp")
end If

rst.MoveNext
Loop

strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
Set rs = DataConn.Execute(strSQL)

Alert = "Prisen er nu opdateret "

else

if request.form("update") <> "" then
Alert = "Du skal angive pris som et tal"
end if

end if

strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
%>
Avatar billede ellebaek Nybegynder
08. juni 2006 - 23:06 #5
Undskyld jeg kommenterer lidt på din kode, men synes den er lidt klodset bygget op.
Jeg laver lige en mindre omstrukturering her:


<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & ";"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then
  alert ="Du har allerede oprettet den pris, prøv igen."
else
  strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
  Set rs = DataConn.Execute(strSQL)

  Alert = "Prisen er nu opdateret "
end if
else
Alert = "Du skal angive pris som et tal"
end if

else
strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
end if
%>


Prøv det her...
Avatar billede ellebaek Nybegynder
08. juni 2006 - 23:08 #6
hmm...

Havde misset den med id.

Men prøv det her... det burde virke. den laver et tjek om den pris er på den aktuelle vare i forvejen.

<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id") & ";"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then
  alert ="Du har allerede oprettet den pris, prøv igen."
else
  strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
  Set rs = DataConn.Execute(strSQL)

  Alert = "Prisen er nu opdateret "
end if
else
Alert = "Du skal angive pris som et tal"
end if

else
strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
end if
%>
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:09 #7
<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & ";"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then
  alert ="Du har allerede oprettet den pris, prøv igen."
else
  strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
  Set rs = DataConn.Execute(strSQL)

  Alert = "Prisen er nu opdateret "
end if
else
Alert = "Du skal angive pris som et tal"
end if

else
strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
end if
%>


linie 82 = <input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:09 #8
<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & ";"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then
  alert ="Du har allerede oprettet den pris, prøv igen."
else
  strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
  Set rs = DataConn.Execute(strSQL)

  Alert = "Prisen er nu opdateret "
end if
else
Alert = "Du skal angive pris som et tal"
end if

else
strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
end if
%>


<form method="post" action="retpris.asp?id=<%=request.querystring("id")%>">

<TABLE>
<TR>
<TD>Pris: </TD>
<TD>

<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
<input type="hidden" name="update" value="1">

</TD>
</TR>

</TABLE>
<BR>       
<BR>
<center>   


<INPUT TYPE='submit' NAME='submit' value='Ret pris' class='knap'>
</form>
<BR>
<B><FONT COLOR="#ff0000" size="2"><%=Alert%></FONT></B><BR>
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:11 #9
Syntax error, unexpected "new line", expecting ")"
/klubadmin/retpris.asp, line 52, column 123



strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id") & ";"
Avatar billede ellebaek Nybegynder
08. juni 2006 - 23:21 #10
ja min fejl :-)
der manglede lige en slut parentes...

prøv den her sql i steden for den du viser...
strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id")) & ";"
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:24 #11
<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">

Type mismatch
/klubadmin/retpris.asp, line 80
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:27 #12
hele koden:

<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
  strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id")) & ";"

set rst = DataConn.Execute (strSQL)

if rst.bof and rst.eof then
  alert ="Du har allerede oprettet den pris, prøv igen."
else
  strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
  Set rs = DataConn.Execute(strSQL)

  Alert = "Prisen er nu opdateret "
end if
else
Alert = "Du skal angive pris som et tal"
end if

else
strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
Set rs = DataConn.Execute(strSQL)
end if
%>
<form method="post" action="retpris.asp?id=<%=request.querystring("id")%>">

<TABLE>
<TR>
<TD>Pris: </TD>
<TD>

<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
<input type="hidden" name="update" value="1">

</TD>
</TR>

</TABLE>
<BR>       
<BR>
<center>   


<INPUT TYPE='submit' NAME='submit' value='Ret pris' class='knap'>
</form>
<BR>
<B><FONT COLOR="#ff0000" size="2"><%=Alert%></FONT></B><BR>
Avatar billede ellebaek Nybegynder
08. juni 2006 - 23:31 #13
hmm...

skal den vise formen hver gang, eller kun første gang...?

<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id")) & ";"

    set rst = DataConn.Execute (strSQL)

    if rst.bof and rst.eof then
      alert ="Du har allerede oprettet den pris, prøv igen."
    else
      strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
      DataConn.Execute(strSQL)

      Alert = "Prisen er nu opdateret "
    end if
  else
    Alert = "Du skal angive pris som et tal"
  end if

else
  strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
  Set rs = DataConn.Execute(strSQL)
end if
%>
<form method="post" action="retpris.asp?id=<%=request.querystring("id")%>">

<TABLE>
<TR>
<TD>Pris: </TD>
<TD>

<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
<input type="hidden" name="update" value="1">

</TD>
</TR>

</TABLE>
<BR>     
<BR>
<center> 

<INPUT TYPE='submit' NAME='submit' value='Ret pris' class='knap'>
</form>
<BR>
<B><FONT COLOR="#ff0000" size="2"><%=Alert%></FONT></B><BR>

men umiddelbart giver det ikke nogen mening at den kan lave en mismatch der...
Det forstår jeg godt nok ikke...
Avatar billede l_otto Nybegynder
08. juni 2006 - 23:32 #14
jeg er online i morgen 1000 tak for hjælpen den er lige ved at være der :-)
Avatar billede ellebaek Nybegynder
08. juni 2006 - 23:32 #15
jo.. nu jeg overvejer det ved jeg godt hvorfor...

<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id")) & ";"

    set rst = DataConn.Execute (strSQL)

    if rst.bof and rst.eof then
      alert ="Du har allerede oprettet den pris, prøv igen."
    else
      strSQL = "update pris set pris='" & replace(Request.Form("pris"),"'","''") & "' where id = " & request.querystring("id")
      DataConn.Execute(strSQL)

      Alert = "Prisen er nu opdateret "
    end if
  else
    Alert = "Du skal angive pris som et tal"
  end if

end if
  strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
  Set rs = DataConn.Execute(strSQL)
%>
<form method="post" action="retpris.asp?id=<%=request.querystring("id")%>">

<TABLE>
<TR>
<TD>Pris: </TD>
<TD>

<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
<input type="hidden" name="update" value="1">

</TD>
</TR>

</TABLE>
<BR>   
<BR>
<center>

<INPUT TYPE='submit' NAME='submit' value='Ret pris' class='knap'>
</form>
<BR>
<B><FONT COLOR="#ff0000" size="2"><%=Alert%></FONT></B><BR>

Sådan her skulle virke. den viser formen igen. hvis du ikke vil det, så skal du lave en else der så omfatter hele formen...
Avatar billede l_otto Nybegynder
09. juni 2006 - 08:40 #16
ja vi er tæt.. nu virker det.. men nu kan den ikke rette..  den vil ikke update den nye pris jeg sætter ind... ?
Avatar billede l_otto Nybegynder
09. juni 2006 - 18:22 #17
hvad siger I til det ?
Avatar billede ellebaek Nybegynder
09. juni 2006 - 23:31 #18
hmm..
det er vidst fordi det virker den anden vej af hvad jeg lige havde forstået...
<%
if request.form("update") <> "" then
  if isNumeric(Request.Form("pris")&"") then
    strSQL = "Select pris From pris Where pris = " & CInt(Request.Form("pris")) & " AND id = " & CInt(request.form("id")) & ";"

    set rst = DataConn.Execute (strSQL)

    if not rst.eof then
      alert ="Du har allerede oprettet den pris, prøv igen."
    else
      strSQL = "update pris set pris='" & CInt(Request.Form("pris")) & "' where id = " & request.querystring("id")
      DataConn.Execute(strSQL)

      Alert = "Prisen er nu opdateret "
    end if
  else
    Alert = "Du skal angive pris som et tal"
  end if

end if
  strSQL = "Select * From pris Where Id = " & Request.Querystring("id")
  Set rs = DataConn.Execute(strSQL)
%>
<form method="post" action="retpris.asp?id=<%=request.querystring("id")%>">

<TABLE>
<TR>
<TD>Pris: </TD>
<TD>

<input type="text" name="pris" value="<%=rs("pris")%>" class="Formindhold" size="40">
<input type="hidden" name="update" value="1">

</TD>
</TR>

</TABLE>
<BR> 
<BR>
<center>

<INPUT TYPE='submit' NAME='submit' value='Ret pris' class='knap'>
</form>
<BR>
<B><FONT COLOR="#ff0000" size="2"><%=Alert%></FONT></B><BR>

Skriver den noget til dig om at der sker noget forkert++..?
Avatar billede l_otto Nybegynder
11. juni 2006 - 20:58 #19
ja nu opdaterer den men den skriver ikke når man prøver at opdatere en pris der allerede er der..... det gjorde den før.. :-)
Avatar billede ellebaek Nybegynder
11. juni 2006 - 21:29 #20
hmm.... det forstår jeg ikke rigtig... kan ikke helt se hvor det skulle gå galt.

Hvad er det der sker helt præcis, kan du forklare lidt mere om hvordan systemet skal fungere...?
Avatar billede l_otto Nybegynder
12. juni 2006 - 09:17 #21
men kan sige du har fået det til at virke..
23:32:58 siger den.. at prisen er allerede oprettet og man kan ikke taste bogstaver.(men så kan den ikke update den pris man er ved at rette.
23:31:01 nu kan man god update men den skriver ikke at prisen allerede er oprettet hvis man prøver at rette prs 250 til 255 (og 255 allerede eksisterer)

så du har fået det til at virke bare ikke i samme kode
Avatar billede l_otto Nybegynder
01. november 2006 - 09:51 #22
nogen der vil svare ?
Avatar billede l_otto Nybegynder
02. november 2006 - 21:07 #23
svar
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