Remazela 6 Denunciar post Postado Janeiro 11, 2017 Caros amigos Por favor, recorro mais uma vez ao auxílio dos amigos, fiz várias pesquisa mas não tive sucesso. Após digitar a data de cadastro, quero alterar a Data através de um INPUT - DATE. Para gravar os campos faço desta forma (grava corretamente), o campos datas no BcoDados está como timestamp. <?php $cotaStatus = '1'; $cotaDtInicio = date('Y-m-d H:m:s'); $cotaDtFim = date('Y-m-d H:m:s'); $sql = 'INSERT INTO cotacao (cotaDtInicio, cotaDtFim, clienteId, cotaStatus) VALUES (:cotaDtInicio, :cotaDtFim, :clienteId, :cotaStatus)'; try{ $query = $conecta->prepare($sql); $query->bindValue(':cotaDtInicio',$cotaDtInicio,PDO::PARAM_STR); $query->bindValue(':cotaDtFim',$cotaDtFim,PDO::PARAM_STR); $query->bindValue(':clienteId',$clienteId,PDO::PARAM_STR); $query->bindValue(':cotaStatus',$cotaStatus,PDO::PARAM_STR); $query->execute(); ?> Quando busco o Código desejado, faço da seguinte forma: <?php //Variável Passada da Página Anterior $cotaIdGet = isset($_GET['cotaId']) ? $_GET['cotaId'] : false; $cotaId = isset($_POST['cotaId']) ? $_POST['cotaId'] : $cotaIdGet; //Faço a pesquisa através do código ID $sql_pegaProd = 'SELECT * FROM cotacao WHERE cotaId = :cotaId'; try{ $query_pegaProd = $conecta->prepare($sql_pegaProd); $query_pegaProd->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_pegaProd->execute(); $resultado_pegaProd = $query_pegaProd->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexception $error_pegaProd){ echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage(); } //Capturo os dados que desejo foreach($resultado_pegaProd as $resProd){ $cotaId = $resProd['cotaId']; $edCotaDtInicio = $resProd['cotaDtInicio']; $edCotaDtFim = $resProd['cotaDtFim']; } ?> <!-- Preencho o form, com os dados --> <form name="cota_2" id="cota_2" action="" method="post" enctype="multipart/form-data"> <p class="p_esp"> <label> <span>Data da Abertura.........:</span> <input type="date" id='cotaDtInicio' name="cotaDtInicio" size="10" min="2000-12-31" value="<?php echo $edCotaDtFim; ?>" > </label> </p> <p class="p_esp"> <label> <span>Data do Encerramento:</span> <input type="date" id='cotaDtFim' name="cotaDtFim" size="10" min="2000-12-31" value="<?php echo $edCotaDtFim; ?>" > </label> </p> O problema que nessa linha, não consigo mostrar a Data gravada no banco. <input type="date" id='cotaDtInicio' name="cotaDtInicio" size="10" min="2000-12-31" value="<?php echo $edCotaDtFim; ?>" > Como consigo mostrar a data gravada no banco para ser alterada ? Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
deoliveiralucas 4 Denunciar post Postado Janeiro 11, 2017 O campo data "cotaDtFim" é "DateTime" ou "Date"? se for "DateTime", pode ser que precise formatar o valor antes de exibir, tente da seguinte maneira: <input type="date" id='cotaDtInicio' name="cotaDtInicio" size="10" min="2000-12-31" value="<?php echo date('Y-m-d', strtotime($cotaDtInicio)); ?>" > Uma sugestão, nesse caso como você esta fazendo uma consulta pelo "id", tente utilizar o método "fetch" ao invés do "fetchAll"; assim não será necessário o "foreach": try{ $query_pegaProd = $conecta->prepare($sql_pegaProd); $query_pegaProd->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_pegaProd->execute(); // fetch ao invés do fetchAll $resultado_pegaProd = $query_pegaProd->fetch(PDO::FETCH_ASSOC); }catch(PDOexception $error_pegaProd){ echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage(); } // não precisa do foreach $cotaId = $resProd['cotaId']; $edCotaDtInicio = $resProd['cotaDtInicio']; $edCotaDtFim = $resProd['cotaDtFim']; Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 11, 2017 Use DateTime, e adicione um @ na frente do timestatmp: $timeStamp = "1484161995"; $date = new DateTime('@'.$timeStamp); echo $date->format('d/m/Y');Saída: 11/01/2017 Se o seu caso é o formato yyyy-mm-dd, basta alterar o format: echo $date->format('Y-m-d');Saída: 2017-01-11 Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 12, 2017 Em 11/01/2017 at 19:03, deoliveiralucas disse: O campo data "cotaDtFim" é "DateTime" ou "Date"? se for "DateTime", pode ser que precise formatar o valor antes de exibir, tente da seguinte maneira: <input type="date" id='cotaDtInicio' name="cotaDtInicio" size="10" min="2000-12-31" value="<?php echo date('Y-m-d', strtotime($cotaDtInicio)); ?>" > Uma sugestão, nesse caso como você esta fazendo uma consulta pelo "id", tente utilizar o método "fetch" ao invés do "fetchAll"; assim não será necessário o "foreach": try{ $query_pegaProd = $conecta->prepare($sql_pegaProd); $query_pegaProd->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_pegaProd->execute(); // fetch ao invés do fetchAll $resultado_pegaProd = $query_pegaProd->fetch(PDO::FETCH_ASSOC); }catch(PDOexception $error_pegaProd){ echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage(); } // não precisa do foreach $cotaId = $resProd['cotaId']; $edCotaDtInicio = $resProd['cotaDtInicio']; $edCotaDtFim = $resProd['cotaDtFim']; Caro amigo Deus o abençoa por sua ajuda, deu certinho. Observação: tive que voltar o fetchAll, pois quando só coloquei fetch, o PHP trouxe a data: 31-12-1969. Não entendi, mas quando voltei o fetchAll, trouxe a data gravada no BcoDados, ou seja, a data atual 11-01-2017. Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 12, 2017 Caro amigo Gabriel Deus o abençoa por sua ajuda. Apenas uma dúvida, referente a sua explicação, após testar não deu certo, ou eu não entendi muito bem. A linha que mostro a data vindo do BcoDados é essa: <input type="date" id='cotaDtInicio' name="cotaDtInicio" size="10" min="2000-12-31" value="<?php echo $edCotaDtInicio; ?>" >No seu exemplo, como colocaria a formatação ?Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 12, 2017 É só alterar o valor do atributo 'value'. value="<?php echo "sua data aqui"; ?>" Compartilhar este post Link para o post Compartilhar em outros sites
deoliveiralucas 4 Denunciar post Postado Janeiro 12, 2017 Em 12/01/2017 at 01:25, Remazela disse: Observação: tive que voltar o fetchAll, pois quando só coloquei fetch, o PHP trouxe a data: 31-12-1969. Não entendi, mas quando voltei o fetchAll, trouxe a data gravada no BcoDados, ou seja, a data atual 11-01-2017. Apenas uma correção, o código que passei na outra resposta está errado; é só alterar onde está "$resultado_pegaProd" para "$resProd"; quando você usa apenas o "fetch" é retornado apenas um item, tente assim: try{ $query_pegaProd = $conecta->prepare($sql_pegaProd); $query_pegaProd->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_pegaProd->execute(); // fetch ao invés do fetchAll $resProd= $query_pegaProd->fetch(PDO::FETCH_ASSOC); // corrigido }catch(PDOexception $error_pegaProd){ echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage(); } // não precisa do foreach $cotaId = $resProd['cotaId']; $edCotaDtInicio = $resProd['cotaDtInicio']; $edCotaDtFim = $resProd['cotaDtFim']; Dê uma lida na documentação para entender melhor: fetchAll: http://php.net/manual/pt_BR/pdostatement.fetchall.php fetch: http://php.net/manual/pt_BR/pdostatement.fetch.php Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 12, 2017 Em 12/01/2017 at 12:11, deoliveiralucas disse: Apenas uma correção, o código que passei na outra resposta está errado; é só alterar onde está "$resultado_pegaProd" para "$resProd"; quando você usa apenas o "fetch" é retornado apenas um item, tente assim: try{ $query_pegaProd = $conecta->prepare($sql_pegaProd); $query_pegaProd->bindValue(':cotaId',$cotaId,PDO::PARAM_STR); $query_pegaProd->execute(); // fetch ao invés do fetchAll $resProd= $query_pegaProd->fetch(PDO::FETCH_ASSOC); // corrigido }catch(PDOexception $error_pegaProd){ echo 'Erro ao pegar o Produto'.$error_pegaProd->getMessage(); } // não precisa do foreach $cotaId = $resProd['cotaId']; $edCotaDtInicio = $resProd['cotaDtInicio']; $edCotaDtFim = $resProd['cotaDtFim']; Dê uma lida na documentação para entender melhor: fetchAll: http://php.net/manual/pt_BR/pdostatement.fetchall.php fetch: http://php.net/manual/pt_BR/pdostatement.fetch.php Caro amigo Obrigado por sua ajuda. Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites