webForumDet fria alternativet

Bara uppdatera om datum rätt

ASP

2 svar · 128 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej

Varje gång man loggar in så uppdateras fältet datum till aktuellt datum med date()
Hur gör jag en sql sats som lägger till 1 i fältet dagaraktiv en gång om dagen? fast den ska bara lägga till om fältet datum är aktuellt.
Alltså att man får +1 om man loggar in, fast man kan bara få det en gång om dagen.

Har ett fält som heter dagaraktiv (där finns hur många dagar man varit aktiv) och så har jag fältet datum där datumet finns. Tabellen heter anvandare.
Behöver jag något fält till eller? :)

Medlem sedan aug. 20013 824 inlägg
#2

För att göra det lätt för dig skulle du skapa en kolumn som heter LastUpdate eller nått som innehåller datumet då man senaste uppdaterade.
Då ser sql-frågan ut så här:

update tbl 
set antallogg = 
iif(Datediff('d', lastUpdate, date()) >=1,
cInt(antallogg+1),iif(lastUpdate is Null,
cInt(antallogg+1), antallogg))
, lastUpdate = iif(lastUpdate = date(), lastUpdate, Date())
where UserId = 'UserId'

Lycka till!
ps, inlägget är redigerat ytterligare en gång ;)

Medlem sedan aug. 20013 824 inlägg
#3

Så här slutade det efter en Lååång diskution på irc mellan två trötta folk.

sql = "update anvandare set dagaraktiv = "& _
	"iif (Datediff('d', cDate(bshyrabet), '"& date()&"') >=1, "& _
	"dagaraktiv+1, iif(bshyrabet > '', dagaraktiv, 1))"& _
	", bshyrabet = Date() "&_
	"where id = "& Trim(Session("id"))
	connect.execute sql,,128
305 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
177 ms — ändringar (db)