Forum > Övriga serverspråk > PHP
Hejsan jag har kört fast i huvudet just nu. Jag tänker göra så att när man är inne på sidan så ska sin status uppdatera varje gång man klickar på något. Alltså att man sparar tiden det hände och sedan jämför med och senaste aktivitet har överstigit 1800 sekunder alltså 30 minuter.
Vet inte hur man ska spara tiden för att sedan göra någon slags if sats.
Hur gör jag if satsen och vilket format ska jag spara tiden?
Du gör ingen if fråga, kör en SQL efter 30 min med CRON jobb, sql för datum: http://dev.mysql.com/doc/refman/5.1...-functions.html
liknande frågor har varit uppe rätt många gånger så det bör bara vara att söka.
det går att göra med if också
skapa en tabell i databasen som heter lastonline int(14)
sätt ut
$lastonline = time(); och mysql_query("UPDATE users SET lastonline='$lastonline' WHERE id='{$_SESSION['inloggad']}'"); i din kod där du vill att den ska uppdateras.
och här är en funktion jag gjort, dock för 10 min:
function online(){
$sql = mysql_query("SELECT * FROM users")or die(mysql_error());
$x=0;
while($fetch = mysql_fetch_assoc($sql)){
if($fetch['lastonline']+600 > time()){
$x++;
}
}
return $x;
}
det går att göra med if också
här är en funktion jag gjorde förut, dock för 10 min.
function online(){
$sql = mysql_query("SELECT * FROM users")or die(mysql_error());
$x=0;
while($fetch = mysql_fetch_assoc($sql)){
if($fetch['lastonline']+600 > time()){
$x++;
}
}
return $x;
}
är väl bara att skriva ut echo online(); om man har inkluderat filen, eller jag kanske inte förstog riktigt
Enklaste är att bara kolla när man är inloggad sist och göra en diff mot datumet just nu: http://www.addedbytes.com/code/php-...tediff-function/
Då när du ändå hämtar ut informationen (bara det är ett datum) så kör du funktionen, att hämta värdet på alla medlemmar som du gör om du bara vill lista de medlemmar som är online(mindre än x minuter sen) så gör det i SQL frågan istället för att hämta ALL information, det är en stor skillnad att få ut 20 poster än om man har 200 000 medlemmar, 200 000 loopar vs 20 säger en hel del.