webForumDet fria alternativet
Logga in / Bli medlem

Optimering av radering

ASP

5 svar · 219 visningar · startad av joakimweb

Medlem sedan feb. 2002141 inlägg
Trådstart#1

Hej!

Jag har ett onlinescript utan global.asa där tabell i MySQL-databas utnyttjas (MySQL 4.x).

Efter 10 minuters inaktivitet är det tänkt att ip-numren skall raderas utav andra användare. Scriptet går vid varje sidladdning och uppdaterar även sidan man är på.

Istället för att jag nu loopar genom alla poster och kontrollerar med DateDiff borde det gå att skrivas i en SQL-fråga. Frågan är bara hur man gör det.

stat_online
Id | Int
IP | varchar
tid | datetime

Alltså kontrollera datetime om det är > 10 min inaktivitet.

Tacksam för all hjälp!

Medlem sedan juni 20006 031 inlägg
#2

Så här har jag gjort i mitt online script.
Det är ju förvisso i php, men du förstår nog funktionen.

// Delete entries older than timeout_online seconds and any duplicates (start transaction)
$query = ('DELETE FROM online WHERE logged<'.($now-300).' OR ident=\''.addslashes($cookie['username']).'\' OR ident=\''.get_remote_address().'\'');
Medlem sedan feb. 2002141 inlägg
#3

Nja, ".($now-300)." blir svår att ersätta med ASP :/

Medlem sedan juni 20006 031 inlägg
#4

Jag kan ju inte asp så...

Men $now är en tidsstämpel, borde väl finnas i asp med, sen minus 300 sek.

Medlem sedan nov. 2003310 inlägg
#5

Använd DateAdd för lägga till och tabort tid från ett datum.

DateAdd("s", -300, now) är ASPs motsvarig till PHPs ($now-300).

obs att det är "n" man ska använda för minuter, m är månader.

/Ante S

Medlem sedan feb. 2002141 inlägg
#6

japp, testkörde precis med DateAdd("n", -10, now) och det funkade.

Tack för hjälpen alla

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)