wneo 5 Denunciar post Postado Agosto 23, 2014 Bom dia!!!! Preciso que toda vez que o usuário logado na sessão fizer algum update nos dados, mostre na pagina de exibição, a data e hora do ultimo UPDATE. Já montei um form onde visualizo os dados cadastrados na tabela dentro dos inputs, e com um botão submit para atualizar, até aì tá operando. Quando faço esse submit, o action aciona a pagina update_ac.php q possui os comandos php pra UPDATE.Gostaria q a data e hora atualizados conforme a ação do usuario, aparecessem na página do form. Vou colocar abaixo o form e a update_ac.php : o form : <?php session_start(); if((!isset ($_SESSION['usuario']) == true) and (!isset ($_SESSION['senha']) == true)) { unset($_SESSION['usuario']); unset($_SESSION['senha']); header('location:index_logar.php'); $logado = $_SESSION['usuario']; $id_usuario = $_SESSION['id_usuario']; } ?> <? include('conecta.php'); $id_emp = $_GET['id_emp ']; ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <form id="form_matriz" name="" action="update_ac.php" method="post"> <ul class="titul_dados1"> - Dados da Matriz/Filial -</ul> <br> <?php require("conecta.php"); $id_usuario = $_SESSION['id_usuario']; $id_emp = $_GET['id_emp']; $sql = "SELECT * FROM empresa WHERE id_usuario = '$id_usuario' AND id_emp = '$id_emp'"; $resultado = mysql_query("$sql"); while($sql = mysql_fetch_array($resultado)){ $r_social = $sql['r_social']; $id_emp = $sql['id_emp']; ?> Razão Social:<input type="text" name="r_social" id="r_social" value="<?php echo $r_social; ?>"> <br> <input name="id_emp" type="hidden" id="id_emp" value="<? echo $id_emp; ?>"> <input type="submit" value="Atualizar"> </form> <?php } ?> a update_ac.php: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?php include('conecta.php'); $r_social= $_POST['r_social']; $ender= $_POST['ender']; $id_emp= $_POST['id_emp']; $id_usuario = $_SESSION['id_usuario']; $sql = "UPDATE empresa SET r_social='$r_social', ender='$ender' WHERE id_usuario='$id_usuario' AND id_emp='$id_emp'"; $resultado = mysql_query($sql); if($resultado == 1){ echo "<script> alert('Atualizado com sucesso!'); window.location.href='matriz_lista.php?id_emp=$id_emp'; </script>"; }else { echo "ERROR"; } ?> Ajuda=).... Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Agosto 23, 2014 e se colocar um campo na tabela para armazenar essa informação? $atualizado = date('d/m/Y - His'); Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 e se colocar um campo na tabela para armazenar essa informação? $atualizado = date('d/m/Y - His'); Marsolin, Creio nisso, devo criar uma coluna com tipo datetime para armazenar... mas como faço para atualizar essa data toda vez que gouver update no mesmo registro...? Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Agosto 23, 2014 é só incluir no SET da sua seção UPDATE se for na mesma tabela ou se for em outra é só dar um segundo UPDATE. Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 é só incluir no SET da sua seção UPDATE se for na mesma tabela ou se for em outra é só dar um segundo UPDATE. Criei uma coluna data com tipo datetime, e no set do update fiz assim: update_ac.php: <?php include('conecta.php'); $r_social= $_POST['r_social']; $ender= $_POST['ender']; $atualizado = date('d/m/Y H:i:s'); $id_emp= $_POST['id_emp']; $id_usuario = $_SESSION['id_usuario']; $sql = "UPDATE empresa SET r_social='$r_social', ender='$ender', data='$atualizado' WHERE id_usuario='$id_usuario' AND id_emp='$id_emp'"; $resultado = mysql_query($sql); if($resultado == 1){ echo "<script> alert('Atualizado com sucesso!'); window.location.href='matriz_lista.php?id_emp=$id_emp'; </script>"; }else { echo "ERROR"; } ?> ...Mas tah com data e hora 000000000.... e nada acontece quando atualizo algum dado... Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Agosto 23, 2014 como você não vai precisar desse dado para mais nada a não ser exibir a data de atualização coloque o campo como text e não datetime. Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 Perfeito!!! =D É isso mesmo, Resolvido Marsolim, Muito Obrigado!!!!!! O horário tá vindo errado... creio q devo q configurar a hora do servidor...^^ Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 23, 2014 Não é legal manipular datas assim, vamos pensar no futuro. Qualquer busca que precisar referente a essas datas não poderá contar com recursos nativos do sql. Então, manipule corretamente: $atualizado = date('Y-m-d H:i:s'); Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 Não é legal manipular datas assim, vamos pensar no futuro. Qualquer busca que precisar referente a essas datas não poderá contar com recursos nativos do sql. Então, manipule corretamente: $atualizado = date('Y-m-d H:i:s'); Obrigado pela dica allex! Mas dessa forma fico obrigado a visualizar com separação por traços e não posso viusalizar com barras a data? E aproveitando que mencionou pensar no futuro, com os códigos apresentados acima, em cada update efetuado no registro a data e hora sobrepõe a anterior... mas digamos que quisesse que houvesse um histórico de todas as atualizações feitas em determinado registro, e exibisse somente a última atualização...como seria isso.. Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Agosto 23, 2014 nesse caso mais do que tudo a dica do amigo ainda fica mais plausivel pois ai indica que tu vai querer usar a data para outra coisa alem de apenas visualizar. ai basta ter um tabela de historico e armazenar nela o id de quem atualizou por exemplo e nesse caso é melhor ter uma campo para data e outro para hora. Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 23, 2014 Para visualizar no padrão brasileiro, basta fazer isso: echo date("d/m/Y H:i:s", strtotime($rs['data_hora'])); Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 Para visualizar no padrão brasileiro, basta fazer isso: echo date("d/m/Y H:i:s", strtotime($rs['data_hora'])); Fiz assim na pagina que desejo visualizar: <?php require("conecta.php"); $id_usuario = $_SESSION['id_usuario']; $id_emp = $_GET['id_emp']; $sql = "SELECT * FROM empresa WHERE id_usuario = '$id_usuario' AND id_emp = '$id_emp'"; $resultado = mysql_query("$sql"); while($sql = mysql_fetch_array($resultado)){ $r_social = $sql['r_social']; $id_emp = $sql['id_emp']; $data = $sql['data']; ?> <br> <?php echo date("d/m/Y H:i:s", strtotime($data['data'])); ?> <br> Razão Social:<input type="text" name="r_social" id="r_social" value="<?php echo $r_social; ?>"> Tá aparecendo uma data fixa de 1/1/1970 Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 23, 2014 O campo no banco é datetime? Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 23, 2014 O campo no banco é datetime? toh usando tipo text... Com datetime fica 0000-00-00 Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 23, 2014 Para a forma que mencionei funcionar, o campo TEM que ser datetime. Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 24, 2014 Para a forma que mencionei funcionar, o campo TEM que ser datetime. Coloquei datetime com a forma : $data = $sql['data']; <?php echo date("d/m/Y H:i:s", strtotime($data['data'])); ?> Mas o resultado vem 0000-00-00 Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 24, 2014 Verifica no banco de dados como estão os dados, se fez a conversão, é bem provável que os campos lá estão zerados. Atualiza os cadastros manualmente e teste novamente. Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 24, 2014 Verifica no banco de dados como estão os dados, se fez a conversão, é bem provável que os campos lá estão zerados. Atualiza os cadastros manualmente e teste novamente. Sim, lá também está zerado...Se eu alterar a data direto no banco, continua zerado no site.. e quando altero pelo site e faço o update, aí fica zerado no banco e na visualização do site tbm... Compartilhar este post Link para o post Compartilhar em outros sites
allex_carvalho 124 Denunciar post Postado Agosto 24, 2014 Para gravar a data no banco, no formulário está padrão brasileiro (24/08/2014)? Se sim, use a função abaixo para converter para o padrão americano: function escreve_data_hora($data) { $data = explode('/', $data); $ano = $data[2]; $mes = $data[1]; $dia = $data[0]; return $ano . '-' . $mes . '-' . $dia . ' ' . date('H:i:s'); } Para usar: $data = escreve_data_hora(filter_input(INPUT_POST, 'data', FILTER_SANITIZE_MAGIC_QUOTES)); E para visualizar: echo date("d/m/Y H:i:s", strtotime($data['data'])); Compartilhar este post Link para o post Compartilhar em outros sites
wneo 5 Denunciar post Postado Agosto 24, 2014 Para gravar a data no banco, no formulário está padrão brasileiro (24/08/2014)? Se sim, use a função abaixo para converter para o padrão americano: function escreve_data_hora($data) { $data = explode('/', $data); $ano = $data[2]; $mes = $data[1]; $dia = $data[0]; return $ano . '-' . $mes . '-' . $dia . ' ' . date('H:i:s'); } Para usar: $data = escreve_data_hora(filter_input(INPUT_POST, 'data', FILTER_SANITIZE_MAGIC_QUOTES)); E para visualizar: echo date("d/m/Y H:i:s", strtotime($data['data'])); Então se já está no formato americano, não preciso fazer aquele script de conversão certo?...poiseh está em formato americano... E a visualização em php toh fazendo como disse: $data = $sql['data']; <?php echo date("d/m/Y H:i:s", strtotime($data['data'])); ?> Compartilhar este post Link para o post Compartilhar em outros sites