pulao 0 Denunciar post Postado Dezembro 22, 2010 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
Beraldo 864 Denunciar post Postado Dezembro 22, 2010 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 Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Cruz Rocha 0 Denunciar post Postado Dezembro 22, 2010 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
pulao 0 Denunciar post Postado Dezembro 22, 2010 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
Beraldo 864 Denunciar post Postado Dezembro 22, 2010 releia meu post anterior "resource id" não é um erro. é o retorno de mysql_query Compartilhar este post Link para o post Compartilhar em outros sites
pulao 0 Denunciar post Postado Dezembro 22, 2010 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
Beraldo 864 Denunciar post Postado Dezembro 22, 2010 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
pulao 0 Denunciar post Postado Dezembro 22, 2010 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
Beraldo 864 Denunciar post Postado Dezembro 22, 2010 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
pulao 0 Denunciar post Postado Dezembro 22, 2010 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