Avatar billede michaeltryl Seniormester
02. september 2008 - 13:46 Der er 10 kommentarer og
1 løsning

mysql update problem

jeg har et felt ,sidst aktiv, som bliver opdateret hver gang en bruger loader en side.
hvis en bruger ikke er aktiv i 5 minutter skal han markeres som offline indtil han loader en side igen

jeg bruger disse to sætninger og det er den sidste som driller lidt.
mysql_query("UPDATE brugere SET online ='nej', sidst_online =NOW() WHERE sidst_aktiv < ADDDATE(sidst_aktiv, INTERVAL 1 MINUTE)") or die(mysql_error());

mysql_query("UPDATE brugere SET online ='nej', sidst_online =NOW() WHERE sidst_aktiv < ADDDATE(sidst_aktiv, INTERVAL 5 MINUTE)") or die(mysql_error());

Håber der er en som kan hjælpe
Avatar billede g0t Nybegynder
02. september 2008 - 14:31 #1
hmm.. Du kan vel lave en tabel der hedder online_brugere og når de kommer ind på siden tilføjes deres navn samt en det tidspunkt de kommer derind på. Når en anden bruger ser siden bliver han tilføjet og alle der ikke har været online i 5 min skal slettes fra tabellen.
Avatar billede michaeltryl Seniormester
02. september 2008 - 14:40 #2
hvis jeg nu godt vil gøre det med en sætning ligende
mysql_query("UPDATE brugere SET online ='nej', sidst_online =NOW() WHERE sidst_aktiv < ADDDATE(sidst_aktiv, INTERVAL 5 MINUTE)") or die(mysql_error());
hvordan gør jeg så det
Avatar billede jakobdo Ekspert
02. september 2008 - 14:53 #3
Jeg ville bestemt også lave det som:
UPDATE brugere SET online = NOW() WHERE bruger = LOGIN_BRUGER

Og dem som ikke har været online inden for de sidste 5 min, må være offline.
Avatar billede michaeltryl Seniormester
02. september 2008 - 15:02 #4
og hvordan vil du så opdatere dem som ikke har været online i 5 minutter?
Avatar billede jakobdo Ekspert
02. september 2008 - 15:13 #5
Jeg vil ikke opdatere, jeg vil blot tjekke online tid, når jeg laver mit udtræk.
online ældre end 5 minutter = offline.
online nyere end 5 minutter = online.
Avatar billede michaeltryl Seniormester
02. september 2008 - 15:59 #6
hvordan vil du lave det udtræk?
jeg har f.eks dette udtræk på en profil side

$check_bruger = mysql_query("SELECT brugernavn, navn, DATE_FORMAT(alder, '%d') AS alder_dato, DATE_FORMAT(alder, '%m') AS alder_maaned, DATE_FORMAT(alder, '%Y') AS alder_aar, kon, post_nr, ryger, tags, tekst, billede, online FROM brugere WHERE bruger_id= '$brugeren'") or die(mysql_error());
Avatar billede jakobdo Ekspert
02. september 2008 - 16:07 #7
Test lige denne sql i phpmyadmin:

$check_bruger = mysql_query("SELECT brugernavn, navn, DATE_FORMAT(alder, '%d') AS alder_dato, DATE_FORMAT(alder, '%m') AS alder_maaned, DATE_FORMAT(alder, '%Y') AS alder_aar, kon, post_nr, ryger, tags, tekst, billede, IF(DATE_SUB(NOW(),INTERVAL 5 MINUTES) < online, 'online','offline') as onlineStatus FROM brugere WHERE bruger_id= '$brugeren'") or die(mysql_error());
Avatar billede michaeltryl Seniormester
02. september 2008 - 16:28 #8
jeg får denne fejl

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MINUTES) < online, 'online','offline') as onlineStatus FROM brugere WHERE bruger' at line 1
Avatar billede michaeltryl Seniormester
02. september 2008 - 20:29 #9
fandt fejlen der skulle stå
MINUTE isedet for MINUTES så der virker.
tak for hjælpen og bare kom med et svar så får du point
Avatar billede jakobdo Ekspert
02. september 2008 - 21:22 #10
Svar!
Avatar billede jakobdo Ekspert
02. september 2008 - 21:40 #11
Takker for point.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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