Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
**<?**php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
$data = 'data';
// $hora = 'hora';
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', now())");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
**?>**
----------------------------------------------------------------------------------------
<form action="" enctype="multipart/form-data" name="Cadastro" method="post">
Messagem:<br />
<textarea name="messagem" cols="40" rows=""></textarea><br /><br />
<input type="submit" name="enviar" value="Cadastrar" />
</form><br />
como faço, para gravar a hora?
a messagem e a data ? esta gravando corretamente.
INSERT INTO posts(messagem, data, hora) VALUES('$messagem', now())
Repare que você passa 3 campos, mas passa somente 2 valores, tem certeza de que isso esta correto?
No B.D., use o tipo do campo datetime.
pode me passar seu msn ?
quero q pega a data automaticamente via codigo não cadastrando, olha como eu fiz com a data ( now() )
>
pode me passar seu msn ?
quero q pega a data automaticamente via codigo não cadastrando, olha como eu fiz com a data ( now() )
bom pelo que entendi, bota assim $data = date('h:m'); que vai funcionar hehe
como eu passo o valor da data ? nessa linha INSERT INTO ?
como eu passo o valor da data ? nessa linha INSERT INTO ?
Now já insere automaticamente, se não está indo assim tenta de outra forma rs
Mas esse valor não é para data ? preciso da hora
pra data coloca; $data = date('d/m/Y');
Mas esse valor não é para data ? preciso da hora
o now ta certo, como eu falei a messagem, e a data estão gravando, so falta a hora
pra hora eu posso usar time() ?
Gabriel VieiraR, ele precisa da HORA :P
<?php
echo "Data: ";
echo date("d/m/y"); // exibe a data no formato DD/MM/YY
echo " Hora: ";
echo date("H:i"); //exibe a hora no formato HH:MM
?>tenta colocar assim que eu acho que vai funcionar.
<?php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?>cara deu certo valew so tem probleminha, agora são 10:32 e gravou no banco "01:02:00", pq será ?
e hora agora ta grando somente isso "0000-00-00"...?
cara deu certo valew so tem probleminha, agora são 10:32 e gravou no banco "01:02:00", pq será ?
php location
voce vai ter que setar set_timezone('America/Sao_Paulo');
acho que é isso
nao me recordo
Bom Galera...pra hora vou usar o now() mesmo, agora so esse probleminha da hora q esta gravando a hora errada ...
alguem pode me ajudar ?
em qual linha eu seto ? e como ?
>
Bom Galera...pra hora vou usar o now() mesmo, agora so esse probleminha da hora q esta gravando a hora errada ...
alguem pode me ajudar ?
em qual linha eu seto ? e como ?
Pode inserir em qualquer linha creio eu, só uma correção coloca cola o date assim date('H:i');
date_default_timezone_set('America/Sao_Paulo');
Eu fiz aqui no meu computador e o horário está funcionando perfeitamente, coloquei da seguinte forma.
<?php
date_default_timezone_set('America/Sao_Paulo');
echo date('H:i');
?>não seria no servidor q tenho q configurar a date_default_timezone_set('America/Sao_Paulo'); ?
não seria no servidor q tenho q configurar a date_default_timezone_set('America/Sao_Paulo'); ?
sim na página.
Então aproveitando o codigo do Gabriel VieiraR, ficaria assim:
<?php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
date_default_timezone_set('America/Sao_Paulo');
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?>mas dando um echo eu não vou estar grando no banco, como faz para gravar a hora correta no banco ?
setei e agora esta dando 12:12 a hora
ta gravando uma hora adiantado
>
mas dando um echo eu não vou estar grando no banco, como faz para gravar a hora correta no banco ?
setei e agora esta dando 12:12 a hora
ta gravando uma hora adiantado
O script tem que ser esse.
<?php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
date_default_timezone_set('America/Sao_Paulo');
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?>Na verdade, se o banco for MySQL, NOW já retorna tanto a data quanto a hora, podendo ser formatado da forma que desejar.
Now, significa agora e não dia de hoje.
INSERT INTO posts(messagem, data, hora) VALUES('$messagem', now(), now())
Todavia, se você deseja data e hora, o mais correto seria utilizar um campo DATETIME
A inserção ficaria muito mais fácil
INSERT INTO posts(messagem, timestamp) values('$messagem', now());
Se o seu problema for na hora de obter os dados, por isso quebrou em duas partes, a formatação pode ser feita tanto na consulta com [DATE_FORMAT](https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format) [inline]SELECT DATE_FORMAT(NOW(), '%d-%m-%Y') AS data, DATE_FORMAT(NOW(), '%H:%i%s') AS hora[/inline] quanto com PHP usando [strtotime](http://br2.php.net/manual/pt_BR/function.strtotime.php) e [date](http://br2.php.net/manual/pt_BR/function.date.php)
$sql = 'SELECT NOW() AS data, NOW() AS hora';
// Consulta, verifica e itera entre as linhas
// em cada linha, faz-se o seguinte
$data = strtotime($linha['data']);
$hora = strtotime($hora['hora']);
echo date('d-m-Y', $data);
echo date('H:i:s', $hora);
Se armazenar a data e hora num campo só, basta unir os formatadores numa função só
SELECT DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s') AS datahora
$sql = 'SELECT NOW() AS datahora';
$datahora = strtotime($linha['datahora');
echo date('d-m-Y H:i:s', $datahora);pq esta gravando uma hora adinatado :? olha o codigo como esta
<?php if(isset($_POST['enviar'])){
$messagem = $_POST['messagem'];
date_default_timezone_set('America/Sao_Paulo');
$data = date('d/m/Y');
$hora = date('h:m');
$sql_inserir = mysql_query("INSERT INTO posts(messagem, data, hora) VALUES('$messagem', '$data','$hora')");
echo "<script>alert('Post cadastrado com sucesso.')</script>";
}
?> OBS: dessa forma sem usar o now pra pegar o ano, esta gravando assim: 000-00-00
no banco de dados estou usando para o campo hora o tipo "time"É só seguir o que o Evandro postou no post #22, insira o valor (now()) em um campo datetime. Grave os dados no formato padrão do mysql, depois vc cria uma função pra exibir esses dados de outra maneira.
INSERT INTO posts(messagem, timestamp) values('$messagem', now());
Muita complicação para algo simples de se fazer.
bom pelo que entendi, bota assim $data = date('h:m'); que vai funcionar hehe
date(h:m) = Hora:mês
o correto seria date("h:i");
Na sua tabela no banco de dados, cria uma coluna do tipo datetime
EX.: a coluna data aqui é datetime
No seu sql
$sql_inserir = mysql_query("INSERT INTO tabela (data) VALUES (NOW())");
assim ele vai inserir a data e a hora, no formato americano
2013-02-13 14:16:26
Ele só cadastra dois valores, ou o que você coloca em data não está funcionando?