webForumDet fria alternativet

Minska post med 1

12 svar · 787 visningar · startad av erika

erikaMedlem sedan juli 200048 inlägg
#1

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
#2

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
#3

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
#4

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
#5

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
#6

hrrm...

det skall fungera. och 26 är givetvis rätt id?

------------------
mördar-anders, det är jag.

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Hur ser hela koden ut där du gör update?

------------------
essentitia preter non sans multiplicandum

erikaMedlem sedan juli 200048 inlägg
#8

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
#9

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
#10

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
#11
<%
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
#12
conn.execute "UPDATE kredit SET kredit = kredit - 1 WHERE UserID = " &
rs("UserID")

------------------
essentitia preter non sans multiplicandum

@ndersMedlem sedan juni 200032 969 inlägg
#13

(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]

130 ms totalt · 3 externa anrop · v20260731065814-full.cf67ef55
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)