04. februar 2007 - 10:49Der er
6 kommentarer og 1 løsning
Vis status - Online & Ofline
Halløjsovs!
Jeg er i gang med at lave et 'ven' system. Hvor man kan tilføje venner, og se deres status (online øverst og ofline nederst).
Mit problem er at jeg ikke kan få den til at vise om man er ofline eller online, kun hvis man klikker på logud knappen...
Altså, når man logger ind, sætter den ens status i mysql til online. Og så bliver man vist øverst på ventelisterne.
Og når man klikker på logud knappen, sætter den også ens status til ofline.
Men da mange vælger bare at klikke på "Luk ned" knappen oppe i browseren, updatere den ikke ens status til ofline, og så står ens status til online. Selvom man er ofline, det er jo ikke smart...
Så, kan jeg på en eller anden måde gøre så når man er logget ud ved at klikke på luk knappen i browseren...
Jeg har prøvet med windows.Close(); i javascript, men der skal man have popup blockeren slået fra før den virker helt.
Og nu ved jeg så ikke helt hvordan jeg skal gøre...
1 onlintid af typen datetime. 2 online af ttpen varchar(3) Når en bruger logger ind opdatere du feltet online med ja og hvergang en bruger, som er logget ind, opdatere/går ind på en ny side updatere du det felt online tid med NOW()
Hver gang en ny bruger logger ind kan du opdatere feltet online med nej hvor feltet online tid er ældre end f.eks. 5 minutter. Du kan også vælge at køre dette tjek hve gang en bruger åbner/opdatere en side
Men hvordan laver jeg så listen hvor brugerene bliver vist, hvor der KUN er dem der er online der står øverst, og kun dem der er offline der er nederst.
Hvis jeg gør det med onlinetid: $hent_beskeder = mysql_query("SELECT * FROM venner ORDER BY onlinetid DESC LIMIT 15") or die(mysql_error());
Så er det den der sidst opdaterede siden der står øverst, jeg vil gerne have at den sorterer med id og ikke med online tid, hvis man kan det?
du kan lave to forspørgsler først en fom henter og viser alle som er online sorteret efter id og derefter en som henter og viser alle som ikke er online
$query = mysql_query ("SELECT * FROM venner WHERE online ='ja' ORDER BY id DESC LIMIT 15") or die(mysql_error()); while ($vis = mysql_fetch_array($query)) { alle som er online } $nquery = mysql_query ("SELECT * FROM venner WHERE online ='nej' ORDER BY id DESC LIMIT 15") or die(mysql_error()); while ($nvis = mysql_fetch_array($nquery)) { alle som ikke er online }
$query = mysql_query ("SELECT * FROM venner WHERE DATE_ADD(onlinetid, INTERVAL 5 MINUTE) < NOW() ORDER BY id DESC LIMIT 15") or die(mysql_error()); while ($vis = mysql_fetch_array($query)) { alle som har været aktive indenfor de sidste 5 minutter }
ellers kan du opdatere feltet online, med 'nej', hvor brugere ikke har været aktive, i f.eks. 5 minutter, i følge onlintid, hver gang en bruger opdatere/åbner siden hvor du vil lave din liste.
Lukker, koderne kunne ikke bruges, eller virkede ikke.
Synes godt om
Ny brugerNybegynder
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.