Re: uppdatera antalet
EDIT:
If Request.Form("PID") = RecSet("PID") Then
Den kan ju inte fungera komm jag på, eftersom det finns ett X antal PID för just det användar ID:et...
Nån som fattar hur jag menar och har något förslag ?
14 svar · 444 visningar · startad av cyeclone
Hejsan jag skulle nu behöva ha lite hjälp igen!
Skulle vara jätte snällt om någon kunnde hjälpa mig!
Jag vill ha det så att om man redan har en produkt med produktidet "22" i sin kundvagn och sedan lägger till en 5 stycken till produket med produktidet "22" så ska bara antalet uppdateras. Har försökt lite med denna kod.
KID = KundID
PID = ProduktID
Hoppas ni fattar nått av mig kod :)
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(" "&databas&" ")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM Kundvagn WHERE KID = " & Trim(Session("KID")) & " "
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<%
If Request.Form("PID") = RecSet("PID") Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(" "&databas&" ")
Set RecSet = Server.CreateObject("ADODB.Recordset")
lol = "Select * FROM Kundvagn WHERE KID = " & Trim(Session("KID")) & " AND WHERE PID = " & Request.Form("PID") & " "
RecSet.Open lol, Connect, 1, 3
Dim antalnu, antal, antal2
antalnu = RecSet("Antal")
antal2 = Request.Form("Antal")
Antal = antalnu + antal2
RecSet.update
RecSet("antal") = Antal
RecSet.Update
RecSet.Close
Else
%>
Re: uppdatera antalet
EDIT:
If Request.Form("PID") = RecSet("PID") Then
Den kan ju inte fungera komm jag på, eftersom det finns ett X antal PID för just det användar ID:et...
Nån som fattar hur jag menar och har något förslag ?
Något sånt här kanske kan funka efter det att du skrivit klart INSERT, och sånt:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(" "&databas&" ")
Visa = "SELECT * FROM Kundvagn WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID")
set RecSet = Connect.Execute(Visa)
If not RecSet.EOF then
' produkten finns, gör update!
strSQL = "UPDATE Kundvagn SET antal = antal + " & Request.Form("antal") & " WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID") & " "
Connect.execute strSQL,,128
Else
'produkten finns inte, gör insert!
strSQL = "INSERT INTO Kundvagn ..............."
Connect.execute strSQL,,128
End if
RecSet.Close
Set RecSet = nothing
Connect.Close
set Connect = nothing
%>
Eller ännu hellre:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(" "&databas&" ")
strSQL = "UPDATE Kundvagn SET antal = antal + " & Request.Form("antal") & " WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID")
Connect.execute strSQL,lngRa,128
if lngRa = 0 then
'produkten finns inte, gör insert!
strSQL = "INSERT INTO Kundvagn ..............."
objConn.execute strSQL,,128
End if
Connect.Close
set Connect = nothing
%>
kollade på ditt första exempel lite,
fick felmedelandet
"Object required: 'objConn' " på denna rad:
objConn.execute strSQL,,128
aha, jag ändra till
set RecSet = Connect.Execute(strSQL)
Och fick det att fungera ;)
Var ändrade du till det?
Min slutgiltiga kod:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(" "&databas&" ")
Visa = "SELECT * FROM Kundvagn WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID")
set RecSet = Connect.Execute(Visa)
If not RecSet.EOF then
' produkten finns, gör update!
strSQL = "UPDATE Kundvagn SET antal = antal + " & Request.Form("antal") & " WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID") & " "
set RecSet = Connect.Execute(strSQL)
session("kundmess") = "Du har uppdaterat din kundvagn med "& Request.Form("antal") &" st "& Request.Form("ProduktNamn") &"."
response.Redirect "index.asp?page=kundvagn"
Else
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(" "&databas&" ")
Set RecSet = Server.CreateObject("ADODB.Recordset")
lol = "Select * FROM Kundvagn"
RecSet.Open lol, Connect, 1, 3
RecSet.addnew
Recset("PID") = Request.Form("PID")
Recset("ProduktNamn") = Request.Form("ProduktNamn")
Recset("KID") = Request.Form("KID")
Recset("Pris") = Request.Form("Pris")
Recset("antal") = Request.Form("antal")
RecSet("Datum") = Date()
RecSet.Update
RecSet.Close
session("kundmess") = "Du har lagt till "& Request.Form("antal") &" st "& Request.Form("ProduktNamn") &" i din kundvagn."
response.Redirect "index.asp?page=kundvagn"
End if
%>
Ser du var jag ändrade det ?
Tack för hjälpen!
Mvh,
Rickard Bjerkenius
Ja, jag ser, men jag förstår inte varför!
Du ska inte skapa ett recordset när du inte vill ha data tillbaka. Byt tillbaks, se bara till att du har "rätt" namn på connectionobjektet!
Sedan:
*) Skapa inte ett nytt connection-objekt när du ska lägga in data. Du har ju redan ett!
*) Dags att lära sig UPDATE och INSERT kanske?
Mvh
så ska ändra denna rad:
set RecSet = Connect.Execute(strSQL)
Till:
Connect.execute strSQL,,128
?
Ja
okej!
Det fungerade fin fint! Tack så mycket för hjälpen @nders!
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(" "&databas&" ")
Visa = "SELECT * FROM Kundvagn WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID")
set RecSet = Connect.Execute(Visa)
If not RecSet.EOF then
' produkten finns, gör update!
strSQL = "UPDATE Kundvagn SET antal = antal + " & Request.Form("antal") & " WHERE KID = " & Trim(Session("KID")) & " AND PID = " & Request.Form("PID") & " "
Connect.execute strSQL,,128
session("kundmess") = "Du har uppdaterat din kundvagn med "& Request.Form("antal") &" st "& Request.Form("ProduktNamn") &"."
response.Redirect "index.asp?page=kundvagn"
Else
' produkten finns inte, skapa en ny
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath(" "&databas&" ")
Set RecSet = Server.CreateObject("ADODB.Recordset")
lol = "Select \* FROM Kundvagn"
RecSet.Open lol, Connect, 1, 3
RecSet.addnew
Recset("PID") = Request.Form("PID")
Recset("ProduktNamn") = Request.Form("ProduktNamn")
Recset("KID") = Request.Form("KID")
Recset("Pris") = Request.Form("Pris")
Recset("antal") = Request.Form("antal")
RecSet("Datum") = Date()
RecSet.Update
RecSet.Close
session("kundmess") = "Du har lagt till "& Request.Form("antal") &" st "& Request.Form("ProduktNamn") &" i din kundvagn."
response.Redirect "index.asp?page=kundvagn"
End if
%>
Du noterade mina tillägg i detta inlägg?
ja, förlåt... :(
får väll ta och ändra lite då.... :P
Är ganska ny inom asp, kanske bara kodat 6 månader :(
Men tack för tipset, jag fattar iaf vad du menar! tro jag :P
Ha det bra!