Avatar billede m_sorensen Nybegynder
26. januar 2004 - 16:49 Der er 16 kommentarer og
1 løsning

Poster som er nyere end 10 min.

Jeg har ledt på eksperten.dk, og fundet frem til, at man må kunne løse mit spørgsmål på følgende måde. Problemet er bare, at jeg ikke kan få det til at virke :)

SQL = "SELECT id, firstname, lastname, lastlogin, lastactivity FROM users WHERE lastactivity >= DATE_SUB('now()', INTERVAL 10 MINUTE) AND active = 1 AND isDeleted = 0 AND authlevel <> 3 ORDER BY lastname, firstname"   

Burde denne SQL, ikke hive medlemmer ud, hvis "lastactivity" er nyere end 10 min ?
Avatar billede Slettet bruger
26. januar 2004 - 17:29 #1
hvilken db er det?
Avatar billede eagleeye Praktikant
26. januar 2004 - 17:33 #2
Prøv at bytte rund på Now() og lastactivity samt uden ' omkring now() eller tror den det er tekst og så lige vend >= til <=:

SQL = "SELECT id, firstname, lastname, lastlogin, lastactivity FROM users WHERE now() <= DATE_SUB(lastactivity, INTERVAL 10 MINUTE) AND active = 1 AND isDeleted = 0 AND authlevel <> 3 ORDER BY lastname, firstname"
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 17:36 #3
Det er mySQL, og det virker stadig ikke Eagleeye... det er mega underligt, jeg forstår det ikke.
Avatar billede eagleeye Praktikant
26. januar 2004 - 17:42 #4
Hvilket format er lastactivity ?
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 17:43 #5
datetime
Avatar billede eagleeye Praktikant
26. januar 2004 - 17:45 #6
;) prøv lige DATE_ADD

SQL = "SELECT id, firstname, lastname, lastlogin, lastactivity FROM users WHERE now() <= DATE_ADD(lastactivity, INTERVAL 10 MINUTE) AND active = 1 AND isDeleted = 0 AND authlevel <> 3 ORDER BY lastname, firstname"
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 18:06 #7
Så viser den bare alle, der har logget ind. Uanset om der er gået 10 min eller 1 time.
Avatar billede eagleeye Praktikant
26. januar 2004 - 18:40 #8
hm det forstår jeg ikke så..
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 18:48 #9
altså, når man logger ind, bliver lastactivity sat til now().. alle der så har logget ind, bliver vist.
Avatar billede eagleeye Praktikant
26. januar 2004 - 18:50 #10
Ja så hvis man ligger 10 minuter til lastactivity og tager dem som er større end Now() så har man alle som er logget ind inden for de sidste 10 minutter.
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 19:00 #11
jeps.. men hvorfor virker det så ikke ? :)
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 19:05 #12
Det virker på en måde også nu.. det virker bare til at være mere præcist end før, men det kan vel bare ikke passe ?
Avatar billede eagleeye Praktikant
26. januar 2004 - 19:08 #13
Nej det lyder underligt hvis tiden "hopper", man kan også skrive det som du føst har med DATE_SUB fra now():

SQL = "SELECT id, firstname, lastname, lastlogin, lastactivity FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) >= lastactivity AND active = 1 AND isDeleted = 0 AND authlevel <> 3 ORDER BY lastname, firstname"

men det giver nok det samme..
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 19:11 #14
Så hiver den alle medlemmer ud... hhmmm
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 19:12 #15
selvf fordi > lige skulle vendes... nu ser det ud til at virke. Lav lige et svar, så får du point for din tid.
Avatar billede eagleeye Praktikant
26. januar 2004 - 19:14 #16
ok, gad vide om der er lidt forskel om man bruger Now eller kolonnen lastactivity i DATA_SUB/ADD funktionen. Det lader det vist til, selvom jeg ikke helt kan forstår det når kolonnen er af datetime typen..
Avatar billede m_sorensen Nybegynder
26. januar 2004 - 19:58 #17
Jeg fatter minus as well... men det ser ud til at køre nu, så må det være godt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester