Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pulao

[Resolvido] Calculo do tempo

Recommended Posts

Boa tarde, gostaria de uma informação de como faço o calulo do tempo de dois campos,,, esses campos estao num banco de dados mysql e sao do tipo time...

gostaria de saber como faço o select pra retornar a diferença entre dois horarios...

 

caso possam me indicar um melhor formato de realizar esse select agradeceria mto... nao tenho certeza mais caso eu utilize timestamp seria melhor e como poderia fazer esse calculo...

 

desde ja agradeço !

 

consegui alguma coisa por aqui... agora ta acontecendo esse erro

 

Resource id #8

 

minha consulta ta dessa maneira -> $duracao=mysql_query("select timediff(hora_fecha,hora_aprova) from chamados where id_chamado='$id_chamado'");

 

dpois faço um update assim

$altera=mysql_query("update chamados set duracao='$duracao' where id_chamado='$id_chamado'");

 

caso possam me dar uma luz agradeço desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resource id #8

 

isso não é um erro.

É o resource da consulta. Provavelmente você deu echo no retorno de mysql_query

 

use mysql_fetch_assoc() (ou seus semelhantes) para buscar o resultado

 

É isso mesmo que o Beraldo falou. Você deu o retorno sem tratar a query retornada. Uma dica para o seu banco de dados é salvar com timestamp do formato UNIX que é o que o PHP utiliza, logo os seus campos de tempo teriam que ser do tipo INT(10), quando se tem campos inteiros as consultas são mais rápidas e ocupam menos espaço no banco. Mas isso é só uma dica :P Quanto ao resource é como o Beraldo disse...trata a query usando mysql_fetch_assoc() que fica beleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gostaria de saber se minha consulta daria certo no php,,, pq qdo a faço no mysql ela funciona...

 

$duracao=mysql_query("select timediff(hora_fecha,hora_aprova) from chamados where id_chamado='$id_chamado'");

 

porque ta dando o seguinte erro:

 

Incorrect time value: 'Resource id #8' for column 'duracao' at row 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

releia meu post anterior

 

"resource id" não é um erro. é o retorno de mysql_query

 

 

entao eu entendi la, mas é o seguinte... eu normalmente uso o mysql_fetch_array();

mas esse caso é diferente...

o que acontece é o seguinte:

faço uma consulta pra pegar a diferença entre dois tempos... e esse resultado vou fazer o update em outra tabela... o que tenho problema é como faço pra passar o resultado da consulta para uma variavel... exemplo $teste=("select timediff(hora_fecha,hora_aprova) from chamados where id_chamado='$id_chamado'");

queria um resultado dessa forma nao sei se esta certo 04:23:10 pra eu fazer o update na tabela...

mas nao esta retornando dessa maneira...

essa é a duvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

TODA e QUALQUER consulta SELECT precisa ter seus dados recuperados com mysql_fetch_*(). mysql_query() só retorna um resource ou TRUE ou FALSE. Ela nunca retornará o valor do SELECT.

 

Então resgate o valor com fetch e depois use esse valor para executar o insert/update

 

 

se não conseguir, poste o código para vermos onde você está errando

Compartilhar este post


Link para o post
Compartilhar em outros sites

TODA e QUALQUER consulta SELECT precisa ter seus dados recuperados com mysql_fetch_*(). mysql_query() só retorna um resource ou TRUE ou FALSE. Ela nunca retornará o valor do SELECT.

 

Então resgate o valor com fetch e depois use esse valor para executar o insert/update

 

 

se não conseguir, poste o código para vermos onde você está errando

 

 

 

 

estou tentando dessa maneira agora...

 

$duracao=mysql_query("select timediff(hora_fecha,hora_aprova) from chamados where id_chamado='$id_chamado'");

$duracao=mysql_fetch_assoc($duracao);

echo $duracao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

nomeie o campo buscado na SQL

 

$exec = mysql_query( "select timediff(hora_fecha,hora_aprova) as durecao from chamados where id_chamado='$id_chamado'" );
$fetch = mysql_fetch_assoc( $exec );
$duracao = $fetch['durecao']; 
echo $duracao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito ! maravilha deu certo... muito obrigado

está resolvido

bom que agora aprendi a pegar resultado de um select... vou aperfeiçoar !!!

vlw pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.