erikaMedlem sedan juli 200048 inlägg Hallo,
Har en sida där jag skall minska en post i databasen på besökaren:
Har följande kod:
<%
On Error Resume Next
set conn = Server.CreateObject ("ADODB.Connection")
cnpath="DBQ=" & server.mappath("bas.mdb")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
if Request.Form("Username") <> "" AND Request.Form("Password") <> "" then
SQL = "SELECT Username,Password,UserID,Realname FROM User WHERE Username = '"&Request.Form("Username")&"' AND Password = '"&Request.Form("Password")&"'"
set rs = conn.execute(SQL)
if not rs.eof then
Session("UserID") = rs("UserID")
Session("Realname") = rs("Realname")
else
Session("Error") = "Felaktigt lösenord / användarnamn!"
end if
end if
%>
<%
set rs2 = conn.execute("SELECT kredit FROM user WHERE UserID = 26")
dim b
b= int(int(rs2("kredit")) - 1)
conn.execute("UPDATE kredit SET kredit = " & b & " WHERE UserID = 26")
%>
Sen inom de sista <% %> har jag även testat :
conn.execute("UPDATE kredit SET kredit = kredit - 1 WHERE UserID = 26")
utan resultat. Den drar helt enkelt inte ner siffran.
Min db ser ut såhär:
username password kredit
kalle boll 50
vill alltså att krediten på 50 skall minska med ett när sidan med min kod laddas... någon som kan hjälpa mig?
Databasen är access2000 om det har betydelse...
tack på förhand / erika
LarsGMedlem sedan dec. 200012 464 inlägg Om det finns en post med userid 26 så borde
conn.execute "UPDATE kredit SET kredit = kredit - 1 WHERE UserID = 26",,128
fungera utmärkt.
------------------
essentitia preter non sans multiplicandum
jorgenMedlem sedan feb. 20012 412 inlägg
conn.execute("UPDATE kredit SET kredit = kredit - 1 WHERE UserID = 26")
mvh Jörgen
------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***
webzonenMedlem sedan feb. 2001390 inlägg Ser okej ut. Är du säker på att columnen
kredit är av typen tal? något felmeddelande?
------------------
En sak livet lärt mig är att idioterna oftast har rätt
erikaMedlem sedan juli 200048 inlägg Funkar inte med nån av koderna.
Inget felmeddelande eller nånting.
Har allting på c:/intepub/wwwroot/in/.
virtuell katalog som heter in.
Tabellen kredit är av typen heltal. även testat med långt heltal. ingen annan som har en aning om vad som kan va fel?
Verkar som inte den tar kontakt med databasen för det kvittar vad jag skriver in för namn på den och det blir ändå inget felmmeddelande...
tack för alla snabba svar, hoppas på fler ;)
@ndersMedlem sedan juni 200032 969 inlägg hrrm...
det skall fungera. och 26 är givetvis rätt id?
------------------
mördar-anders, det är jag.
LarsGMedlem sedan dec. 200012 464 inlägg Hur ser hela koden ut där du gör update?
------------------
essentitia preter non sans multiplicandum
erikaMedlem sedan juli 200048 inlägg jepp 26 är rätt...
det som jag tycker är konstigt är att den inte ger felmeddelande även om jag skriver in tex kldfjhdfklds.mdb som databas...
här är hela koden...
<%
On Error Resume Next
set conn = Server.CreateObject ("ADODB.Connection")
cnpath="DBQ=" & server.mappath("bad.mdb")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath
if Request.Form("Username") <> "" AND Request.Form("Password") <> "" then
SQL = "SELECT Username,Password,UserID,Realname FROM User WHERE Username = '"&Request.Form("Username")&"' AND Password = '"&Request.Form("Password")&"'"
set rs = conn.execute(SQL)
if not rs.eof then
Session("UserID") = rs("UserID")
Session("Realname") = rs("Realname")
else
Session("Error") = "Felaktigt lösenord / användarnamn!"
end if
end if
%>
<%
conn.execute("UPDATE kredit SET kredit = kredit - 1 WHERE UserID = 26")
%>
@ndersMedlem sedan juni 200032 969 inlägg ehh, du kanske ska ta och ta bort on error resume next.
det du gör är att du säger till servern 'om det blir fel, skit i det och kör vidare, för jag vill inte veta'.
prova sedan igen, så lovar jag att du får felmeddelande...
------------------
mördar-anders, det är jag.
erikaMedlem sedan juli 200048 inlägg tack löste sig var lite tabeller som inte stämde ;)
En sista fråga, om jag istället för 26 vill ha från den aktuella användaren som är inloggad utifrån koden jag har överst, hur gör jag då?
@ndersMedlem sedan juni 200032 969 inlägg <%
conn.execute("UPDATE kredit SET kredit = kredit - 1 WHERE UserID = " & session("UserID"))
%>
mvh,
------------------
mördar-anders, det är jag.
LarsGMedlem sedan dec. 200012 464 inlägg conn.execute "UPDATE kredit SET kredit = kredit - 1 WHERE UserID = " &
rs("UserID")
------------------
essentitia preter non sans multiplicandum
@ndersMedlem sedan juni 200032 969 inlägg (om ditt recordset fortfarande är öppet, gör enligt LarsGs förslag.)
red: fast rs("UserID") ska då stå på samma rad som resten.
------------------
mördar-anders, det är jag.
[Redigerat av @nders den 22 aug 2001]