Jump to content

[Duvida] Utilizadores online


Recommended Posts

Posted

bem este é o meu primeiro post em PHP 🙂 !

bem eu estive a fazer este código.

<?php
//--------------------------------------------------------------------------------------------------------------
//http://joaopedropereira.com/
//--------------------------------------------------------------------------------------------------------------
//Config:
$local ="localhost";
$user ="root"; //Nome de utilizador para aceder à base de dados
$senha=""; //A senha da base de dados
$db ="teste_users"; //Base de Dados
$tempmins = 5; //minutos para inatividade de um utilizador
//Código:
$ip=$REMOTE_ADDR; //IP do visitante
$res = mysql_connect("$local", "$user", "$senha") or die ("Erro de conexão"); //conecta com a base de dados
mysql_select_db($db,$res); //seleciona a base de dados
if(mysql_num_rows(mysql_query("SELECT * FROM usersonline WHERE ip='".$ip."'"))>0) { //verrifica se o IP já está na base de dados
//ja que ele está é necessario fazer update ao campo time para que ele não seja eliminado rapidamente
mysql_query('UPDATE usersonline SET time="'.time().'" WHERE  ip="'.$ip.'"');
} else {
//se ele não estiver na nossa base de dados, vai haver necessidade de o inserir
mysql_query('INSERT INTO usersonline (ip,time) VALUES ("'.$ip.'","'.time().'")');
}
mysql_query('DELETE FROM usersonline WHERE time<'.(time()-($tempmins*60))); //elimina os ips com mais de 5 minutos
echo mysql_num_rows(mysql_query("SELECT * FROM usersonline")).' utilizadores online'; //Mostra o resultado na página
?>

e eu tenho dúvidas:

É possivel dar uma instrução de if e else de forma a que se for o valor 1 escrever "1 utilizador online" e se for outro numero qualquer dizer " nº utilizadores online"? se sim como 😉?!

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted
$SQL = "SELECT * FROM usersonline";
$results = mysql_query($SQL);
$total = mysql_num_rows($results);

echo ($total > 1) ? "Neste momento estao $total users online" : "Neste momento está 1 user online";

btw.. dizes no comment 5min e no $tempmins tens 30min 🙂

Posted

já está alterado nem tinha reparado. Já está feito e já está direito 🙂 thks!

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted
echo mysql_num_rows(mysql_query("SELECT * FROM usersonline")).' utilizadores online'; //Mostra o resultado na página

é melhor colocares como eu disse porque assim vai dar um bico na gramática "1 utilizadores online", fica sempre aquele "mau" aspecto 🙂😛

echo (condicao) ? CASO_SEJA_TRUE : CASO_SEJA_FALSE;

(isto caso nao tenhas percebido o que eu fiz, fica tambem a dica para um IF mais simples lol para coisas mais simples como esta) 🙂

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.