webForumDet fria alternativet

Räkna login!

ASP

3 svar · 207 visningar · startad av annesophie

Medlem sedan juni 20012 236 inlägg
Frågan#1

Hej,

Tänkte att jag skulle kolla av hur många gåner en viss användare (i detta fallet GUEST VISITOR) har loggat in i min projekt del.

Så jag försökte använda detta scriptet:

sql4 = "update login set antalBesok = antalBesok + 1 where user_id = "&userref&";"
conn.execute sql4

Skapade ett nytt fält i min tabell [login] som heter [antalBesok]. Jag satte fältet till NUM, är det rätt???

Jag lade scriptet på "inside" alltså dit man kommer efter login checken är avklarad och tänkte att det skulle funka...men icke...

Ingenting händer, alltså ingen "uppdatering" i tabellen och försöker jag skriva ut sql 4 - <%=rs4("antalBesok")%> - så får jag felmeddelande ADODB.Fields fout '800a0cc1' resten är på Holländska och är säkert därför inte så användbart för er, men det betyder typ att kan inte hitta något fält som heter så !!

Jag har jämfört namn och kollat det mesta säkert 10 ggr men jag hittar ingenting som ser fel ut! Jag har skrivit ut session("login") och SQL4 och då ser det ut så här:

20 (detta är session("login"))

(detta är SQL4)
update login set antalBesok = antalBesok + 1 where id = 20;

HELP!

Detta är ASP biten i inside.asp:

<%
option explicit
response.buffer=true

dim conn,sql,rs,userref,user_id,sql2,rs2,project_id,project_updated_by,sql3,rs3,sql4,rs4,antalBesok

userref = session("login")

IF userref = "" then
response.redirect "login.asp"
else

set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.mappath("tcf.mdb")

sql = "select * from [login] WHERE user_id = "& userref &";"
set rs =conn.execute(sql)
response.write sql

sql4 = "update login set antalBesok = antalBesok + 1 where user_id = "&userref&";"
conn.execute sql4

end if
%>

<HTML>

<HEAD></HEAD>

<BODY>

<!--Och så försöker jag skriva ut-->

<%=rs4("antalBesok")%>

</BODY>

</HTML>

Jag behöver hjälp!

MvH

/A

------------------
Om du gör jobbet rätt första gången blir jobbet gjort. Om du gör jobbet fel fjorton gånger skapar du fler arbetstillfällen.

[Redigerat av annesophie den 20 aug 2001]

[Redigerat av annesophie den 20 aug 2001]

Medlem sedan juni 200032 967 inlägg
#2

en updatefråga returnerar ingenting (förutom ett tomt recordset i detta fallet, eftersom du skrivit koden så).

du måste göra en select för att få ut någonting. eftersom recordsetet är tomt och du försöker kalla på ett fält som inte finns där, får du felmeddelandet.

mvh,

------------------
can i borrow your goat?

Medlem sedan dec. 200012 464 inlägg
#3

Förmodligen så ligger det null i kolumnen antalBesok. Null + 1 blir också null.

Om det är så kan du antingen uppdatera direkt i access så att alla får 0 där initialt eller så kan du skriva din update så här istället.

sql = "update login " & _
" set antalBesok = iif(antalBesok is null,1,antalBesok+1) " & _
" where id = "&userref
conn.execute sql,,128

Anledningen till att du får fel när du försöker skriva ut något från rs4 är att det recordsetet är tomt eftersom en update inte returnerar några rader. Man behöver därför inte skapa något recordset alls.

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

Medlem sedan juni 20012 236 inlägg
#4

TAAAAAAAAAAAAAAACK!!!

LarsG du är min hjälte!

MvH

/A

------------------
Om du gör jobbet rätt första gången blir jobbet gjort. Om du gör jobbet fel fjorton gånger skapar du fler arbetstillfällen.

284 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
158 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)