thgmbz Postado Outubro 20, 2013 Denunciar Share Postado Outubro 20, 2013 Boa Noite Gostaria de saber se alguém conhece alguma possibilidade de usar o TIMESTAMP dessa maneira abaixo: CREATE TABLE produto ( id int(10) unsigned NOT NULL AUTO_INCREMENT, nome varchar(45) NOT NULL, descricao varchar(45) NOT NULL, /*data criação*/ datacriacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP, /*data atualização*/ datamodificacao TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 23, 2013 Denunciar Share Postado Outubro 23, 2013 Utilize DEFAULT CURRENT_TIMESTAMP somente para a data de alteração. (Só pode haver um DEFAULT CURRENT_TIMESTAMP por registro. Para data de criação use datetime e alimente-o com NOW() na inclusão. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thgmbz Postado Outubro 25, 2013 Autor Denunciar Share Postado Outubro 25, 2013 Denis boa noite... Estou trabalhando em um crud php e não estou conseguindo atribuir da maneira que me indicou poderia me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 25, 2013 Denunciar Share Postado Outubro 25, 2013 Denis boa noite...Estou trabalhando em um crud php e não estou conseguindo atribuir da maneira que me indicou poderia me ajudar?Faça assim: CREATE TABLE produto ( id int(10) unsigned NOT NULL AUTO_INCREMENT, nome varchar(45) NOT NULL, descricao varchar(45) NOT NULL, /*data criação*/ datacriacao DATETIME NOT NULL, /*data atualização*/ datamodificacao TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Quando for dar INSERT nesta tabela use NOW() para atribuir valor para o atributo datacriacao. Não há necessidade de timestamp pois este atributo recebe valor somente na ação de insert.exemplo:INSERT INTO produto(nome, descricao, datacriacao) VALUES ("nome produto", "usado para qualquer coisa", NOW());Pelo que analisei sua tabela já possui alguns produtos cadastrados AUTO_INCREMENT=6.Você pode dar um ALTER TABLE para modificar o atributo datacriacao, fazendo assim: ALTER TABLE produto MODIFY COLUMN datacriacao DATETIME NOT NULL; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thgmbz Postado Outubro 28, 2013 Autor Denunciar Share Postado Outubro 28, 2013 Boa Tarde... O fato é que estou passando para o banco da seguinte forma... $con = new conexao(); // instancia classe de conxao $con->connect(); // abre conexao com o banco @$getId = $_GET['id']; //pega id para ediçao caso exista if(@$getId){ //se existir recupera os dados e tras os campos preenchidos $consulta = mysql_query("SELECT * FROM produto WHERE id = + $getId"); $campo = mysql_fetch_array($consulta); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 thgmbz Postado Outubro 28, 2013 Autor Denunciar Share Postado Outubro 28, 2013 falto essa parte... if(isset ($_POST['cadastrar'])){ // caso não seja passado o id via GET cadastra $datamodificacao=date("d/m/Y h:i:s"); $nome = $_POST['nome']; //pega o elemento com o pelo NAME $descricao = $_POST['descricao']; //pega o elemento com o pelo NAME $crud = new crud('produto'); // instancia classe com as operaçoes crud, passando o nome da tabela como parametro $crud->inserir("nome,descricao", "'$nome','$descricao'"); // utiliza a funçao INSERIR da classe crud header("Location: index.php"); // redireciona para a listagem } if(isset ($_POST['editar'])){ // caso seja passado o id via GET edita $datamodificacao=date("d/m/Y h:i:s"); $nome = $_POST['nome']; //pega o elemento com o pelo NAME $descricao = $_POST['descricao']; //pega o elemento com o pelo NAME $crud = new crud('produto'); // instancia classe com as operaçoes crud, passando o nome da tabela como parametro $crud->atualizar("nome='$nome',descricao='$descricao'", "id='$getId'"); // utiliza a funçao ATUALIZAR da classe crud header("Location: index.php"); // redireciona para a listagem } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 28, 2013 Denunciar Share Postado Outubro 28, 2013 Use um trigger para gravar a data de criação do registro. Menos trabalhoso que usar o php.DELIMITER $$; DROP TRIGGER `nomeDoSeuBancoDeDados`.`produto_trig_bi`$$ CREATE TRIGGER `produto_trig_bi` BEFORE INSERT ON `produto` FOR EACH ROW BEGIN SET NEW.datacriacao = NOW(); END; $$ DELIMITER ;$$ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
thgmbz
Boa Noite
Gostaria de saber se alguém conhece alguma possibilidade de usar o TIMESTAMP
dessa maneira abaixo:
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.