
Carlos Arruda
Membros-
Total de itens
45 -
Registro em
-
Última visita
Tudo que Carlos Arruda postou
-
Bom dia! Estou com dificuldades em conseguir fazer uma inserçao que seja da seguinte forma. Tenho um menu drop list (Status) que é preenchido com as informaçoes de entrada,saida almoço ou saida dos funcionarios da empresa e é insirido no bd com o comando abaixo. if(!empty($_status)){ if($_status=='Entrada') { $sql_insere="INSERT INTO status (nome,login,modulo,data,hora,status,observacao,statusjus,horajus) VALUES ('$nome_usr','$login_usr','$modulo_usr','$data','$hora','$_status','$_obs','$statusjus','$horajus')"; $insere=mysql_query($sql_insere); } } esse comando funciona perfeitamente, porem fui solicitado a adicionar mais campos como se fossem uma justificativa, alem dos campos acima foi adicionado um checkbox que ao ser marcado habilita o campo statusjus e horajus, porem não to sabendo como fazer para que ele respeita uma das condiçoes. ex: se ele não selecionar o checkbox ele faz o insert acima, se ele selecionar faz o insert acima mais as informçaoes que estao nos campos statusjus e horajus, levando em consideraçao que o statusjus tem que ser igual ao status. voces podem me dar uma luz, de como proceceder?
-
Fit, desculpe mas eu não sei utilizar esses comando é possivel me orientar?
-
Bom não da erro nenhum somente não insere e se eu rodo direto no mysql da certinho...
-
Bom dia pessoal! Estou com uma dificuldade na inserção de alguns dados que contem o (ç) em sua formação. Vejam os comandos abaixo: //verificar se exite algum valor para o status saida almoco $ver_saidaalmoco=mysql_query("SELECT * FROM status WHERE login='$login_usr' AND data='$data' AND status='saida almoco-Lanche'"); if(mysql_num_rows($ver_saidaalmoco) >0){ $saidaalmoco=1; } if(($_status=='Saida Almoco-Lanche') && ($entrada==1)){ $sql_insere="INSERT INTO status (nome,login,modulo,data,hora,status,observacao) VALUES ('$nome_usr','$login_usr','$modulo_usr','$data','$hora','$_status','$_obs')"; $insere=mysql_query($sql_insere); } Da forma apresentado acima funciona perfeitamente, porem quando mudo o c para ç ele não faz a inserção. O que eu devo fazer para conseguir inserir os dados dessa forma?
-
(Resolvido) Consulta data em campo varchar
pergunta respondeu ao Carlos Arruda de Carlos Arruda em PHP
Ok. Entendi e deu certo. Obrigado! -
(Resolvido) Consulta data em campo varchar
pergunta respondeu ao Carlos Arruda de Carlos Arruda em PHP
ESerra, obrigado! MAs veja so todas a minhas paginas estao nesse formato date("d/m/Y") e o campo DATE do mysql so aceita danda no formato YYYY-mm-dd. Como devo proceder nesse caso? -
Pessoal, tenho um campo da minha tambela que recebe uma variavel de data da seguinte forma: $data=date('d/m/Y'); Ate ai tudo bem, quando vou fazer uma consulta por um periodo do tipo SELECT * FROM status where data BETWEEN '01/06/2010' AND '11/06/2010' funciona normalmente, mas se eu fizer a mesma consulta com meses diferentes já da problema não me retorna nada SELECT * FROM status where data BETWEEN '01/05/2010' AND '11/06/2010' . O que eu devo fazer para conseguir que volte os valores corretos? Nem no proprio mysql direto eu consigo fazer isso.
-
Woody, pensei nisso tambem, mesmo prq ninguém faz mais de 24 horas de trabalho. Veja o codigo abaixo ele faz o calculo se a hora de saida for menor que a hora que deveria sair. onde a variavel ($status_sd) é a hora que ele esta saindo e ($hr_saida) é a hora que ele deveria sair esse ai se a hora que o funcionario esta saindo ta certinho, mas não consegui adicionar 24 horas para fazer esse calculo. if(($status_sd < $hr_saida) && ($he_status==1) && ($sd_status!=1) && ($res_saida==1)){ $horadiff=strtotime($hr_saida)-strtotime($status_sd); $finaliza_saida=date("H:i",$horadiff); $insere_atraso_sd="INSERT INTO tbl_atraso (nome,login,data,status,hora,tempo,modulo) VALUES ('$nome_usr','$login_usr','$data','Saida','$hora','$finaliza_saida','$modulo_usr')"; $insere_he=mysql_query($insere_atraso_sd); }
-
ESerra, na verdade ai ta um problema bem grande pelo seguinte fato. Na hora de se cadastrar os funcionarios é cadastrado a hora de entrada e saida. quando vou fazer o calculo eu pego a hora que ele ta saindo e gravo em uma variavel ai pego a hora que ele deveria sair e comparo. se a hora que ele esta saindo for menor que a hora que ele deveria sair faz se a subtraçao entre um e outro. então não conseguirei trabalhar dessa forma com data, pois como eu disse na tabela funcinario somente gravo a hora de entrada e saida, na tabela status ele grava a hora e a saida do evento.
-
Prezados, aqui estou novamente! Bom mas agora meu problema é o seguinte. Tenho um arquivo php que registra o ponto dos funcionarios, registra a diferença da saida mais cedo e dos atrasos. Ex: data 27/05/2010 entrei para trabalhar as 08:10 e meu horario de entrada é as 08:00 ele registra numa tabela de atraso os 10 minutos Sai mais cedo tinha que sair as 18:00 e sai as 15:00 ele registra no banco 03:00 como atraso Porem temos um funcinario que entra as 15:30 e larga as 01:30 do dia seguinte, so que um certo dia ele saiu mais cedo do trabalho tipo que ele saiu as 23:00 levando em considereçao ao calculo que faço que se a hora de saida for menor que a hora que ele realmente tem que sair ele insere no banco. Porem neste caso ele nunca vai inserir pois a hora que ele esta saindo é maior, mas em contrapartida ele esta saindo mais cedo. alguém tem alguma ideia de como eu devo proceder para fazer isso?
-
obrigado, Rickaryon!
-
Ok. Obrigado Rickayron. O problema é que conheço pouco de php e nada de java, mas vou ver se dou uma estudadinha.
-
Boa tarde Prezados alguém sabe me orientar como criar um relogio que atualize em tempo real em php?
-
Pessoal, consegui fazer o que eu qria. To passando para agradecer a todos pelo empenho e postar como ficou o codigo. <?php include('config.php'); $mod_modulo=$_POST['modulo']; $pesquisar=$_POST['pesquisar']; $dta_ini=$_POST['dtainicial']; $dta_fin=$_POST['dtafinal']; //verifica se o botao pesquisar foi pressionado se os campos datas não estao vazios if(($pesquisar==Pesquisar') && ($dta_ini!="") && ($dta_fin!="")){ //se o modulo for vaizo seleciona tudo if($mod_modulo==""){ $sql_total="SELECT * FROM tbl_atraso WHERE data BETWEEN '$dta_ini' AND '$dta_fin' ORDER BY nome,data,hora"; $res_total=mysql_query($sql_total); //select para trazer o total de atraso por funcionario $sql_atraso="SELECT nome,SEC_TO_TIME( SUM( TIME_TO_SEC( tempo ) ) ) as Soma_Atraso FROM tbl_atraso WHERE data BETWEEN '$dta_ini' AND '$dta_fin' GROUP BY NOME"; $res_atraso=mysql_query($sql_atraso); //variavel de incremento com valor zero $contt=0; //variavel em vetor $atraso=array(); //laço/looping while($sql_res_atraso=mysql_fetch_array($res_atraso)){ $atraso[$contt]=$sql_res_atraso['Soma_Atraso]; $contt+=1; } $linha=mysql_num_rows($res_total); if($linha>0){ // escreve o cabeçalho da tabela echo "<table align=center><tr><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Nome Funcionario</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Login</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Data</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Status</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Hora do Evento</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Atraso ou Saida mais Cedo</td></tr>"; } $cont=0; $nome=array(); $login=array(); $data=array(); $hora=array(); $status=array(); $hora=array(); $tempo=array(); //faz o looping com os valores da consulta while($exibe=mysql_fetch_array($res_total)){ $nome[$cont]=$exibe['nome']; $login[$cont]=$exibe['login']; $data[$cont]=$exibe['data']; $status[$cont]=$exibe['status']; $hora[$cont]=$exibe['hora']; $tempo[$cont]=$exibe['tempo']; $cont+=1; } $i=0; for($x=0;$x<$linha;$x++){ //monta a tabela com os resultados do select echo "<tr><td bgcolor=#CCCCCC><font face=Verdana size=1>$nome[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$login[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$data[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$status[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$hora[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$tempo[$x]</td></tr>"; if($nome[$x+1]!=$nome[$x]){ echo "<tr><td bgcolor=#333333 colspan=5><font face=Verdana size=1 color=#ffffff><b>Total Atraso</b></td><td bgcolor=#333333><font face=Verdana size=1 color=#ffffff><b>$atraso[$i]</b></td></tr>"; $i+=1; } } } if($mod_modulo!="){ $sql_total="SELECT * FROM tbl_atraso WHERE data BETWEEN '$dta_ini' AND '$dta_fin' and modulo='$mod_modulo' ORDER BY nome,data,hora"; $res_total=mysql_query($sql_total); $sql_atraso="SELECT nome,SEC_TO_TIME( SUM( TIME_TO_SEC( tempo ) ) ) as Soma_Atraso FROM tbl_atraso WHERE modulo='$mod_modulo' and data BETWEEN '$dta_ini' and '$dta_fin' and modulo='$mod_modulo' GROUP BY NOME"; $res_atraso=mysql_query($sql_atraso); $contt=0; $atraso=array(); while($sql_res_atraso=mysql_fetch_array($res_atraso)){ $atraso[$contt]=$sql_res_atraso['Soma_Atraso]; $contt+=1; } $linha=mysql_num_rows($res_total); if($linha>0){ // escreve o cabeçalho da tabela echo "<table align=center><tr><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Nome Funcionario</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Login</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Data</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Status</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Hora do Evento</td><td bgcolor=#333333 align=center><font face=Verdana size=1 color=ffffff><b>Atraso ou Saida mais Cedo</td></tr>"; } $cont=0; $nome=array(); $login=array(); $data=array(); $hora=array(); $status=array(); $hora=array(); $tempo=array(); //faz o looping com os valores da consulta while($exibe=mysql_fetch_array($res_total)){ $nome[$cont]=$exibe['nome']; $login[$cont]=$exibe['login']; $data[$cont]=$exibe['data']; $status[$cont]=$exibe['status']; $hora[$cont]=$exibe['hora']; $tempo[$cont]=$exibe['tempo']; $cont+=1; } $i=0; for($x=0;$x<$linha;$x++){ //monta a tabela com os resultados do select echo "<tr><td bgcolor=#CCCCCC><font face=Verdana size=1>$nome[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$login[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$data[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$status[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$hora[$x]</td><td bgcolor=#CCCCCC><font face=Verdana size=1>$tempo[$x]</td></tr>"; if($nome[$x+1]!=$nome[$x]){ echo "<tr><td bgcolor=#333333 colspan=5><font face=Verdana size=1 color=#ffffff><b>Total Atraso<b/></td><td bgcolor=#333333><font face=Verdana size=1 color=#ffffff><b>$atraso[$i]</b></td></tr>"; $i+=1; } } } } //fecha tabela e conexao echo "</table>"; echo "</table>"; mysql_close($con); ?>
-
Opa! segue toda a estrutura do banco. -- phpMyAdmin SQL Dump -- version 3.1.3.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tempo de Geração: Mai 11, 2010 as 11:37 AM -- Versão do Servidor: 5.1.33 -- Versão do PHP: 5.2.9 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Banco de Dados: `ponto` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `dif_almoco` -- CREATE TABLE IF NOT EXISTS `dif_almoco` ( `diferenca` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `dif_almoco` -- INSERT INTO `dif_almoco` (`diferenca`) VALUES ('01:18'); -- -------------------------------------------------------- -- -- Estrutura da tabela `funcionarios` -- CREATE TABLE IF NOT EXISTS `funcionarios` ( `nome` varchar(255) NOT NULL, `login` varchar(20) NOT NULL, `senha` varchar(20) NOT NULL, `id_func` int(11) NOT NULL AUTO_INCREMENT, `horaentrada` varchar(255) NOT NULL, `horasaida` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `descanso` varchar(255) NOT NULL, PRIMARY KEY (`id_func`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; -- -- Extraindo dados da tabela `funcionarios` -- INSERT INTO `funcionarios` (`nome`, `login`, `senha`, `id_func`, `horaentrada`, `horasaida`, `email`, `descanso`) VALUES ('Elton Amaro da Silva', 'elton.amaro', '123456', 4, '15:30', '23:30', 'elton.amaro@campello.com.br', '01:18'), ('Carlos Augusto Gonçalves Arruda', 'carlos.augusto', 'campello', 3, '08:00', '18:00', 'carlos.augusto@campello.com.br', '01:18'); -- -------------------------------------------------------- -- -- Estrutura da tabela `func_mod` -- CREATE TABLE IF NOT EXISTS `func_mod` ( `id_func_mod` int(20) NOT NULL, `modulo` varchar(20) NOT NULL, KEY `id_func_mod` (`id_func_mod`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `func_mod` -- INSERT INTO `func_mod` (`id_func_mod`, `modulo`) VALUES (4, 'Ello Servicos'), (3, 'Ello Solucoes'), (3, 'Ello Servicos'), (3, 'Gerente'), (3, 'Administrador'); -- -------------------------------------------------------- -- -- Estrutura da tabela `modulos` -- CREATE TABLE IF NOT EXISTS `modulos` ( `id_mod` int(11) NOT NULL AUTO_INCREMENT, `nome_mod` varchar(20) NOT NULL, `nome_real` varchar(255) NOT NULL, PRIMARY KEY (`id_mod`), UNIQUE KEY `nome_mod` (`nome_mod`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; -- -- Extraindo dados da tabela `modulos` -- INSERT INTO `modulos` (`id_mod`, `nome_mod`, `nome_real`) VALUES (1, 'Ello Solucoes', 'Ello Soluções'), (2, 'Ello Servicos', 'Ello Serviços'), (3, 'Gerente', 'Gerente'), (5, 'Administrador', 'Administrador'); -- -------------------------------------------------------- -- -- Estrutura da tabela `status` -- CREATE TABLE IF NOT EXISTS `status` ( `nome` varchar(255) NOT NULL, `login` varchar(255) NOT NULL, `modulo` varchar(255) NOT NULL, `data` varchar(255) NOT NULL, `hora` varchar(255) NOT NULL, `status` varchar(255) NOT NULL, `observacao` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `status` -- INSERT INTO `status` (`nome`, `login`, `modulo`, `data`, `hora`, `status`, `observacao`) VALUES ('Elton Amaro da Silva', 'elton.amaro', 'Ello Servicos', '10/05/2010', '20:43', 'Retorno Almoco', ''), ('Elton Amaro da Silva', 'elton.amaro', 'Ello Servicos', '10/05/2010', '19:23', 'Saida Almoco', ''), ('Elton Amaro da Silva', 'elton.amaro', 'Ello Servicos', '10/05/2010', '04:20', 'Entrada', ''); -- -------------------------------------------------------- -- -- Estrutura da tabela `tbl_atraso` -- CREATE TABLE IF NOT EXISTS `tbl_atraso` ( `nome` varchar(255) NOT NULL, `login` varchar(255) NOT NULL, `data` varchar(255) NOT NULL, `status` varchar(255) NOT NULL, `hora` varchar(255) NOT NULL, `tempo` varchar(255) NOT NULL, `modulo` varchar(255) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `tbl_atraso` -- INSERT INTO `tbl_atraso` (`nome`, `login`, `data`, `status`, `hora`, `tempo`, `modulo`) VALUES ('Elton Amaro da Silva', 'elton.amaro', '10/05/2010', 'Entrada', '20:20', '00:50', 'Ello Servicos'), ('Elton Amaro da Silva', 'elton.amaro', '10/05/2010', 'Retorno Almoco', '20:43', '00:02', 'Ello Servicos'), ('Carlos Augusto', 'carlos.augusto', '10/05/2010', 'Entrada', '09:00', '01:00', 'Ello Solucoes'); -- -------------------------------------------------------- -- -- Estrutura da tabela `tbl_status` -- CREATE TABLE IF NOT EXISTS `tbl_status` ( `status_situacao` varchar(255) NOT NULL, `status_real` varchar(255) NOT NULL, `ordem` int(8) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `tbl_status` -- INSERT INTO `tbl_status` (`status_situacao`, `status_real`, `ordem`) VALUES ('Entrada', 'Entrada', 1), ('Saida Almoco', 'Saída Almoço', 2), ('Retorno Almoco', 'Retorno Almoço', 3), ('Saida', 'Saída', 4);
-
É ta quase como eu qria, prq quando tem mais de um status entrada em periodos diferente ele exibe somente um com a soma dos dois e no total geral ele retorna somente a ultima data. rode esse comando ai e veja o que to querendo dizer, sem em dias diferentes eu entrei atrasado ele soma os atrasos de entrada e exibe uma unica informaçao com uma unica data.
-
não entendi! o select que passei já faz a soma dos minutos eu preciso somente exibir todos dos eventos dos funcionarios e so no final somar. faria tipo assim: é de algo igual ao abaixo que eu preciso login tempo status data carlos.augusto 00:05 Entrada 07/05/2010 carlos.augusto 00:20 Retorno Almoco 07/05/2010 carlos.augusto 00:15 Entrada 08/05/2010 carlos.augusto 00:10 saida 09/05/2010 Total 00:50 elton.amaro 00:25 Entrada 07/05/2010 elton.amaro 00:10 Retorno Almoco 07/05/2010 elton.amaro 00:08 Entrada 08/05/2010 elton.amaro 00:10 saida 09/05/2010 Total 00:53
-
rickayron, vou tentar explicar melhor. Todos os eventos de atrasos tanto quanto de entrada, retorno do almoco, e saida mais cedo é registrado nessa tabela. preciso fazer um select para trazer as informçoes de atrasos de todos os funcionarios por um determinado periodo de data, e ao final de cada funcionario exibir um totalizador. Tentei o comando abaixo porem ele não retorna as informçoes como eu queria, porq ele soma todos os atrasos de entrada, retorno e saida. Porem eu preciso que exiba pela data esses eventos e so ao final some tudo desse usuario. Espero que tenha conseguido me expressar melhor agora. SELECT CASE WHEN status is not NULL THEN '' ELSE 'Total Atraso' END AS '', login, STATUS , DATA , modulo, SEC_TO_TIME( SUM( TIME_TO_SEC( tempo ) ) ) FROM tbl_atraso GROUP BY login, STATUS WITH rollup
-
Boa tarde pessaol! Estou aqui novamente para pedir um auxilio. Possuo um tabela mysql que se chama tbl_atraso, nessa tabela se registra o tempo de atraso de cada funcionario de uma empresa inserindo os dados login, data, status(entrada,retorno almoço ou saida), e um campo chamado tempo que fica as informçoes de atraso de cada funcioonario. precisava fazer um select que me trouxesse todas as informaçoes de todos usuarios num intervalo de tempo e ao final de cada login gerar um campo totalizador com a soma dos atrasos por login. É possivel fazer isso
-
Como faz para dar como concluido esse tópico?
-
rickayron, não entendi o que voce quis dizer, tem como exemplificar o que voce disse?
-
Fit, agora deu certo o problema tava na minha logica para efetuar o calculo. Agora eu faço assim, pego o horario que ele saiu para almoco, e o horario que retornou e gravo em uma variavel, faço uma diferença entre as duas para ver o valor em tempo, pego essa diferença e comparo com o valor exato que é de 01:18 que todo funiconario tem direito ao almoco, se a diferença entre as horas for maior que esse valor faço uma subtraçao entre ela e gravo o resultado no banco. Pronto para inserir os valores agora ta bacana. Agora preciso arrumar uma forma de já somar esses valores dentro do proprio select, porem quando eu faço isso ele ignora tudo que ta depois dos (:) dois ponto, faz a soma somente do primeiro campo. Agora é quebrar mais um pouco a cabeça. if($_status=='Retorno Almoco'){ $sql_dif="SELECT * FROM dif_almoco"; $res_dif=mysql_query($sql_dif); while($res_dif_almoco=mysql_fetch_array($res_dif)){ $dif_almoco=$res_dif_almoco['diferenca']; } //verifica a hora que o usuario saiu para almocar $sql_salmoco=SELECT hora FROM status WHERE nome='$nome_usr' AND login='$login_usr' AND modulo='$modulo_usr' AND data='$data' AND status='Saida Almoco'"; $res_salmoco=mysql_query($sql_salmoco); while($res_sql_salmoco=mysql_fetch_array($res_salmoco)){ $salmoco=$res_sql_salmoco['hora]; } //verifica a hora que ele voltou $sql_ralmoco="SELECT hora FROM status WHERE nome='$nome_usr' AND login='$login_usr' AND modulo='$modulo_usr' AND data='$data' AND status='Retorno Almoco'"; $res_ralmoco=mysql_query($sql_ralmoco); while($res_sql_ralmoco=mysql_fetch_array($res_ralmoco)){ $ralmoco=$res_sql_ralmoco['hora']; } //calcula a diferenca entra o retorno e a saida do almoco $dif_rs_almoco=strtotime($ralmoco)-strtotime($salmoco); $total_dif_rs_almoco=date("H:i",$dif_rs_almoco); //verifica se já existe algum valor para esse metodo $ver_status_ra=mysql_query("SELECT * FROM tbl_atraso WHERE login='$login_usr' AND data='$data' AND status='Retorno Almoco'"); if(mysql_num_rows($ver_status_ra) >0){ $ra_status=1; } //verifica se a diferença entre o retorno e a saida do almoco é maior do que o intervalo concedido pela empresa, se for calcula novamente a diferença entre esses valores e insere no banco. if(($total_dif_rs_almoco > $dif_almoco) && ($ra_status!=1)){ $diferenca_almoco=strtotime($total_dif_rs_almoco)-strtotime($dif_almoco); $finaliza=date("H:i",$diferenca_almoco); $insere_atraso_ra="INSERT INTO tbl_atraso (login,tempo,data,status,modulo) VALUES ('$login_usr','$finaliza','$data','Retorno Almoco','$modulo_usr')"; $insere_ra=mysql_query($insere_atraso_ra); } }
-
Fit, ele retornar um numero muito alem do esperado. Tipo que se era para apresentar 00:10 minutos de atraso ele vem com um valor de 06:45 hs. Vale lembrar tambem que o campo que recebe esse valor no banco é um campo varchar. Fit, não sei como fazer separadamente.
-
Opa rickayron! O problema que o erro ta nessa soma ai mesmo, porem eu utilizo esse mesmo comando fazendo uma subtraçao da hora que o funcionario entrou com a hora que deveria entrar e da certinho, agora essa soma que ta me quebrando as pernas. Alguma dica do que devo fazer?
-
Fit, veja so o meu novo problema! Fiz o que voce me orientou a respeito de inserir as informaçoes de atraso em uma tabela, ate ai o atraso da entrada e se o cara sair mais cedo estao funcionando legal. já o retorno do almoco é que ta me dando dor de cabeça. Tenho uma tabela que se chama tbl_diferenca essa tambem tem um valor que é 01:18 que é o tempo de almoço consedido a todos os funcionario, para eu calcular o atraso do almoço faço o seguinte, pego essa valor de 01:18 e gravo em uma variavel, logo em seguinda faço um select para ver a hora que o funcionario saiu para almoço, faço a soma dessa duas variaveis, faço outro select para verificar a hora que o usuario retornou. Verifico que se o valor do retorno do almoço for maio que a soma da saida mais o intervalo concedido, calcula-se a diferença entre essas variaveis e insere a diferença no banco. So que não esta dando certo esta sendo inserido um valor que não tem nada a ver. Veja o codigo e se pode me ajudar novamente. //seleciona quanto tempo de almoco o usuario tem $sql_dif_almoco="SELECT diferenca FROM dif_almoco"; $res_dif_almoco=mysql_query($sql_dif_almoco); while($res_dif_almoco1=mysql_fetch_array($res_dif_almoco)){ $dif_almoco=$res_dif_almoco1['diferenca']; } //grava a diferença em uma variavel $dif_almoco1=date("H:i",$dif_almoco); //verifica se o status é retorno do almoco, se for faz um select para saber a hora que o usuario saiu para almocar e grava numa variavel if($_status==Retorno Almoco'){ $select_sa_status="SELECT hora FROM status WHERE nome='$nome_usr' AND login='$login_usr' AND modulo='$modulo_usr' AND data='$data' AND status='Saida Almoco'"; $res_select_sa=mysql_query($select_sa_status); while($res_select_sa1=mysql_fetch_array($res_select_sa)){ $status_sa=$res_select_sa1['hora]; } //pega a hora que o usuario saiu para o almoco e soma com a diferença $horadiff=strtotime($status_sa)+strtotime($dif_almoco1); $concluira=date("H:i",$horadiff); //seleciona hora que o usuario voltou do almoco $select_ra_status="SELECT hora FROM status WHERE nome='$nome_usr' AND login='$login_usr' AND modulo='$modulo_usr' AND data='$data' AND status='Retorno Almoco'";