joaocasta Posted July 11, 2012 at 09:39 AM Report Share #468284 Posted July 11, 2012 at 09:39 AM Bom dia, queria mostrar na página de perfil de cada membro do site se ele está online ou offline por isso disseram-me para usar na base de dados, na tabela dos users, duas colunas, "ultima_vez_ativo" com DATETIME e "ativo" com TINYINT com o default de 0.. Queria que, quando esse user fizesse o login no site trocasse o 0 para 1, de modo a que indica que ele está online.. Tenho este código: $query = mysql_query(" UPDATE users set ultima_vez_ativo = now() WHERE id = " . $_SESSION['id']); Se me pudessem ajudar agradecia! 😉 Link to comment Share on other sites More sharing options...
pikax Posted July 11, 2012 at 09:42 AM Report Share #468285 Posted July 11, 2012 at 09:42 AM $query = mysql_query(" UPDATE users set ultima_vez_ativo = now() AND ativo=1 WHERE id = " . $_SESSION['id']); assim? Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
joaocasta Posted July 11, 2012 at 09:49 AM Author Report Share #468289 Posted July 11, 2012 at 09:49 AM nao deu. Link to comment Share on other sites More sharing options...
pikax Posted July 11, 2012 at 09:54 AM Report Share #468292 Posted July 11, 2012 at 09:54 AM desculpa, nao e' o AND e' , $query = mysql_query(" UPDATE users set ultima_vez_ativo = now(),ativo=1 WHERE id = " . $_SESSION['id']); Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
joaocasta Posted July 11, 2012 at 09:57 AM Author Report Share #468295 Posted July 11, 2012 at 09:57 AM não sei porque mas da-me 127 na base de dados Link to comment Share on other sites More sharing options...
pikax Posted July 11, 2012 at 09:59 AM Report Share #468297 Posted July 11, 2012 at 09:59 AM faz um SELECT em vez de um update para ver os valores que estao na base de dados Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
joaocasta Posted July 11, 2012 at 10:00 AM Author Report Share #468298 Posted July 11, 2012 at 10:00 AM eu queria fazer algo como o P@P tem no perfil a dizer se está online ou offline e o tempo Link to comment Share on other sites More sharing options...
pikax Posted July 11, 2012 at 10:03 AM Report Share #468299 Posted July 11, 2012 at 10:03 AM e' mais ou menos assim que se faz, mas qual e' o erro/problema que tas a ter? Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
joaocasta Posted July 11, 2012 at 10:05 AM Author Report Share #468300 Posted July 11, 2012 at 10:05 AM não consigo mostrar que o user está online/offline Link to comment Share on other sites More sharing options...
pikax Posted July 11, 2012 at 10:07 AM Report Share #468301 Posted July 11, 2012 at 10:07 AM nao consegues porque? o problema e' no update, no select, na base de dados, php, css, etc,etc.. Ainda nao sou bruxo, nao das informacoes suficientes para conseguir-te ajudar 1 Report Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast." Link to comment Share on other sites More sharing options...
Rui Carlos Posted July 11, 2012 at 10:20 PM Report Share #468412 Posted July 11, 2012 at 10:20 PM Primeiro tens que definir os critérios para considerares um utilizador online. Penso que no P@P considera-se que um utilizador está online se efectuou alguma acção nos últimos 15min. Segundo este critério, podes verificar se um utilizador está online comparando a data da última acção (que estás a guardar na BD), com a data actual. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
laeknishendr Posted July 11, 2012 at 11:07 PM Report Share #468418 Posted July 11, 2012 at 11:07 PM Eu recomendo que crie uma tabela com colunas que digam respeito a id do usuário e o tempo da ultima ação que ele realizou no sistema, ai você pode criar uma função para determinar que o usuário efetuou alguma ação no sistema como isso: mysql_query("UPDATE user_action SET last_activity = now() WHERE idusuario = $idusuario"); Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 12, 2012 at 09:25 AM Report Share #468450 Posted July 12, 2012 at 09:25 AM Eu recomendo que crie uma tabela com colunas que digam respeito a id do usuário e o tempo da ultima ação que ele realizou no sistema, ai você pode criar uma função para determinar que o usuário efetuou alguma ação no sistema como isso: mysql_query("UPDATE user_action SET last_activity = now() WHERE idusuario = $idusuario"); então explica lá porque razão deverá ele criar mais uma tabela, mais uma relação, etc, quando pode muito bem enfiar um simples campo na tabela de utilizadores, visto que obrigatoriamente terá de ser lido ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
MASNathan Posted July 12, 2012 at 10:24 AM Report Share #468460 Posted July 12, 2012 at 10:24 AM usuário Opá... isto do "usuário" só me dá vontade de chorar Link to comment Share on other sites More sharing options...
softklin Posted July 12, 2012 at 10:39 AM Report Share #468462 Posted July 12, 2012 at 10:39 AM Opá... isto do "usuário" só me dá vontade de chorar MASNathan, usuário é um termo muito usado no Brasil, percebe-se perfeitamente o significado. Peço que evites esses comentários, porque mesmo estando a brincar, algumas pessoas podem achar ofensivo. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
MASNathan Posted July 12, 2012 at 10:47 AM Report Share #468464 Posted July 12, 2012 at 10:47 AM (edited) MASNathan, usuário é um termo muito usado no Brasil, percebe-se perfeitamente o significado. Peço que evites esses comentários, porque mesmo estando a brincar, algumas pessoas podem achar ofensivo. 😕 okapa, e já agora peço desculpa se ofendi alguém Edited July 12, 2012 at 10:48 AM by MASNathan Link to comment Share on other sites More sharing options...
laeknishendr Posted July 13, 2012 at 03:30 AM Report Share #468529 Posted July 13, 2012 at 03:30 AM então explica lá porque razão deverá ele criar mais uma tabela, mais uma relação, etc, quando pode muito bem enfiar um simples campo na tabela de utilizadores, visto que obrigatoriamente terá de ser lido ? Sua ideia é bem melhor mesmo, não havia pensado nisso na hora. Opá... isto do "usuário" só me dá vontade de chorar Hahaha, usuário tem algum significado em especial para os portugueses? Link to comment Share on other sites More sharing options...
joaocasta Posted July 13, 2012 at 07:32 AM Author Report Share #468530 Posted July 13, 2012 at 07:32 AM Pronto já fiz a parte do online, mas agora a parte do offline é que não estou a conseguir, sei que tenho de meter algo no logout.php para destruir o registo na tabela. No código do online fiz isto: <?php # INCLUDE THIS FILE WHERE YOU WANT TO LOG THE USER, FOR EXAMPLE # # INSIDE index.php # WRITE include("isonline.php"); if(isset($_SESSION["isonline"])) { # EXECUTE THIS QUERY mysql_query ("UPDATE users_online " . "SET ultima_visita = \"" . date("c") . "\" " . "WHERE `id` = " . $_SESSION["isonline"]); } else { $_SESSION["isonline"] = mt_rand(); # EXECUTE THIS QUERY mysql_query ("INSERT INTO users_online (`user`,`id`,ultima_visita) VALUES(" . (isset($_SESSION["id"]) ? $_SESSION["id"] : "0") . "," . $_SESSION["isonline"] . "," . "\"" . date("c") . "\"" . ")"); } ?> Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 13, 2012 at 08:32 AM Report Share #468533 Posted July 13, 2012 at 08:32 AM como infelizmente adotaste a solução de criar uma nova tabela, terás então de remover os registos ou invalidar os dados do registo SQL para remover o registo $sql = "DELETE FROM users_online WHERE user = '{$_SESSION['id']}'"; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted July 13, 2012 at 08:54 AM Author Report Share #468535 Posted July 13, 2012 at 08:54 AM não dá nao elimina o registo apenas tira um e cria outro. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now