Ir para conteúdo
Fórum Script Brasil
  • 0

Atribuir valor a uma variavel já existente


tlima

Pergunta

Estou com o seguinte problema:

Estou extraindo dados de uma tabela, onde tenho hora entrada no sistema e hora saida do sistema , e dai subtraio uma da outra e recupero assim o tempo online.

pode ocorrer de não ter o tempo de saida, dai atribuo o valor de entrada a ela somada com mais uma hora.

No entanto preciso com que nessa listagem caso o proximo valor de entrada no sistema seja menor que a ultima hora de saida do sistema, esse ultimo valor de saida seja igual ao da proxima entrada.

Alguma ideia?

<?php
    include("inc/conecta.php");
    
    $sql = "SELECT l.usuario, l.id, l.ip, u.nome, u.sobrenome, l.tempo, l.acao
            FROM log l
            INNER JOIN usuario u ON u.id = l.userid
            WHERE l.userid = 2 and l.acao in ('login','logout') ORDER BY l.tempo ASC";          
    $result = mysql_query($sql, $conn);    


        function calcula_tempo($logout, $login){
            $tempoFinal = $logout-$login;
            return $tempoFinal;
        }        
   
   //---------------------------------------------------------------------------------------------


    $linha = 1;
    $totalMinutos = 0;
    $login = 0;
    $logout = 0;

    while($d = mysql_fetch_array($result)){
        
        //quando a lista começa com logout então anula o login
        if(($d['acao'] == 'logout') && (empty($login))){
            $login = $d['tempo']; 
        }

        //Quando tem um segundo login sem a existência do logout
        if(($d['acao'] == 'login') && (!empty($login))){
            $logout = $login + 3600; 
            
            
            $totalMinutos += calcula_tempo($logout, $login);    
            $linha++;
            
            unset($login);
            unset($logout);
            unset($tempoFinal);                
            
                        
        }

        //quando não há um logout em um tempo menor que uma hora

        // aqui preciso verificar se o ultimo logout e maior que o loginm que vem a seguir, caso maior ele 
               //muda a variavel antiga de logout e atribui o valor dela igual ao desse login
        if(($d['acao'] == 'login') && (!empty($login))){
            
            
            $logout = $login + 3600;
                        
            echo date("d-m-Y G:i:s", $login)." ";
            echo date("d-m-Y G:i:s", $logout)."<br/>";
            
        
            
        }
        
        //grava login na variávael
        if($d['acao'] == 'login'){
            $login = $d['tempo'];
        }        
        //grava logout na variável
        if($d['acao'] == 'logout'){
            $logout = $d['tempo']; 
        }
        
        
        //existe login e logout
        if((!empty($login))&& (!empty($logout))){

            $totalMinutos += calcula_tempo($logout, $login);    
            $linha++;
                        
            unset($login);
            unset($logout);
            unset($tempoFinal);            
        }
        
        
        
    }
    

?>

Editado por tlima
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...