• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skin

[Duvida] Utilizadores online

6 mensagens neste tópico

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 ;)?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$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 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 :):P

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) :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas, tnks pela dica, n sabia ke em php o if tb podia ser simplificado... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

também foi à pouco tempo que encontrei esta maneira de fazer um IF, pa e é bastante util para este tipo de coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora