webForumDet fria alternativet

Online datum i databas.

ASP

16 svar · 211 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Jag hadde tänk att göra en funktion som visar om en användare är online eller inte. jag har placerat en liten 0 gånger 0 pixlar stor frame med en sida i som uppdateras var 5:e minut. Om session("inloggad") = true så ska den spara datum och tid i databasen. Och sedan djämföra nuvarande datum med datumet i databasen, om det skiljer mer äm 5 minuter mellan dom är man offline annars är man online.

Fråga : hur gör man för att spara nuvarande datum i databasen?

Fråga 2 : Hur gör man för att djämföra nuvarande datum med datumet i databasen och ge olika resultat om skilnaden är mer än 5 min och mindre ?

Någon som har en annan ide till hur detta kan lösas utan global.asa så lyssnar jag mer än gärna ;)

------------------
*brölar ljudligt*

Medlem sedan dec. 19992 085 inlägg
#2

Eftersom du gör som du gör så behövs ju inte global.asa? När sessionen dör så dör den ju även om du inte har nån kod i global.asa.

------------------
//M@rtin || Peachy.nu\\

ni taLar Bra laTiN

Medlem sedan aug. 20011 087 inlägg
#3

Hehe jag vet! Jag påpekade bara att om någon vet ett ANNAT sätt som inte heller använder global.asa o e smidigare så lyssnar jag gärna på det :o)

Ingen som kan svara på mina frågor? =/

------------------
*brölar ljudligt*

Medlem sedan jan. 20013 341 inlägg
#4
SQL="Update Users Set Online='"& now &"' Where UserID="& Session("UserID")
Conn.Execute(SQL)

om du använder access så hoppa över ' runt "& now &", har du MySQL så gör det inte

jämför:

SQL="Select * From Users Where date_add(Online,interval 5 minute) >= current_timestamp"
Conn.Execute(SQL)

Så får du fram alla som är online...

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

[Redigerat av aleborg den 09 jan 2002]

Medlem sedan aug. 20011 087 inlägg
#5

Koden för att spara datumet funkade fin fint när jag ändrat om till mina namn. Men den andra koden förstår jag inte riktigt.

jag listar upp alla användare och skulle vilja ha en text som är online när det inte är mer än 5 min och offline om det är mer, hur gör man det med den koden?

Tack iaf!

------------------
*brölar ljudligt*

Medlem sedan jan. 20013 341 inlägg
#6
SQL="Select * From Users Where date_add(Online,interval 5 minute) >= current_timestamp"
Set onlineRS=Conn.Execute(SQL)
Do Until onlineRS.EOF
Response.Write onlineRS("Username") & "<br>"
onlineRS.MoveNext
Loop
onlineRS.Close
Set onlineRS = Nothing

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

Medlem sedan aug. 20011 087 inlägg
#7

jovisst men det där listar ju alla som är online och det var inte det jag var ute efter. Jag har redan listat samtliga medlemmar och vill ange brevid deras namn om dom är offline eller online! ;)

------------------
*brölar ljudligt*

Medlem sedan jan. 20013 341 inlägg
#8
If date_add(RS("online"),interval 5 minute) >= current_timestamp Then 
Response.Write "Online"
End If

borde funka :)

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

[Redigerat av aleborg den 09 jan 2002]

Medlem sedan aug. 20011 087 inlägg
#9

Får av någon anledning detta felmedelande :

Kompileringsfel i Microsoft VBScript fel '800a03ee' 

')' förväntas. 

/StajlLinks 1.0/members.asp, rad 121 

If date_add(online("online"),interval 5 minute) >= current_timestamp Then
--------------------------------------^

jag använder nu denna sql kod

Set online = Connection.Execute("Select * From members Where date_add(Online,interval 5 minute) >= current_timestamp")

och if satsen som du sa

<% If date_add(online("online"),interval 5 minute) >= current_timestamp Then%>ONLINE<%Else%>OFFLINE<%end if%>

Vad är felet?

------------------
*brölar ljudligt*

Medlem sedan aug. 20011 087 inlägg
#10

kom just på att vafan gör swl satsen där hehe men felet får jag fortfarande =/

------------------
*brölar ljudligt*

Medlem sedan jan. 20013 341 inlägg
#11

Tanken med if satsen var att plocka ut online ifrån den SQL koden du använder för att hämta användarens info, t ex:

Set online = Connection.Execute("Select * From members Where MemberID="& Request.QueryString("show_user") &"")
If date_add(RS("online"),interval 5 minute) >= current_timestamp Then 
userOnline= " Online"
End If
Response.Write online("Username") & userOnline

Allt beror på hur du visar den andra informationen. Jag har tyvärr inte testat if satsen, men den borde funka

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

Medlem sedan aug. 20011 087 inlägg
#12

Det där fattar jag inte alls hur jag ska få det att funka i min loop.. =/
*suck* antingen så e jag trög eller så fattar jag bara inte ;)

------------------
*brölar ljudligt*

Medlem sedan aug. 20011 087 inlägg
#13

Eller alltså jag tror att jag fattar, men jag får error på den där djävla femman hela tiden!

Kompileringsfel i Microsoft VBScript fel '800a03ee' 

')' förväntas. 

/StajlLinks 1.0/members.asp, rad 9 

If date_add(RS("online"),interval 5 minute) >= current_timestamp Then
----------------------------------^

------------------
*brölar ljudligt*

Medlem sedan aug. 20011 087 inlägg
#14

Ingen som vet vad som är fel?

If date_add(RecSet("online"),interval 5 minute) >= current_timestamp Then

får error

Kompileringsfel i Microsoft VBScript fel '800a03ee' 

')' förväntas. 

/StajlLinks 1.0/members.asp, rad 9 

If date_add(RecSet("online"),interval 5 minute) >= current_timestamp Then
--------------------------------------^

------------------
*brölar ljudligt*

Medlem sedan aug. 20011 087 inlägg
#15

Borde man inte behöva någon funktion som definerar vad allt det där är? för dom funktionerna finns väll knappast innbygt i asp eller?

------------------
*brölar ljudligt*

Medlem sedan aug. 20011 087 inlägg
#16

Koden jag fick va ju heltokig :o)
Löste det iaf tillslut med lite hjälp!

<%
Set online = Connection.Execute("Select * From members Where nick='"& recset("nick") &"'")

onlinemin = DateDiff("n", online("online"), now)
if onlinemin <= 5 then
userOnline= " Online"
color = "#00CC00"
else
userOnline=" Offline"
color ="#FF0000"
end if
%>

<font color="<%=color%>"><%=UserOnline%></font>

hoppas någon kan ha nytta av detta :o)

------------------
*brölar ljudligt*

Medlem sedan jan. 20013 341 inlägg
#17

Du löste det :)
Jag använder koden enbart i SQL frågor, och där funkar den! Har aldrig provat den i en If sats men nu vet jag ;)

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

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