Jump to content
Sign in to follow this  
alexmestre

Nao consigo inserir a data na base de dados

Recommended Posts

alexmestre

olá malta

estou tento um problemazinho no php

eu tenho isto:

	$data_post = date("d/m/Y");  

que guarda na variavel $data_post a data

mas quando faço o sql para inserir na base de dados nao insere

aparece os campos em branco

o sql é este

 $sql = "INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')"; 

agradeço a ajuda e a atensao prestada

cumps

Share this post


Link to post
Share on other sites
KTachyon

tira o $ do sql e ja deve funcionar. Aconselho te mesmo assim a usar antes o mysql_query() em vez do sql

http://pt2.php.net/manual/en/function.mysql-query.php

Penso que ele estará a fazer:

mysql_query($sql);

Relativamente à dúvida, faz um print do $sql:

echo "<p>".$sql."</p>";


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
alexmestre

exactamente KTachyon

eu tou a fazer isto

if(empty($retorno)){

							//cria uma query Mysql
							$sql = "INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')";

							$query = mysql_query($sql);

								if($query === true){
									$sucesso = '<span  class="yes">A pagina ira ser redirecionada em poucos segundos, Obrigado!</span>';
									echo $sucesso;		
								}else{ 
								$retorno = '<span class="no">Nao foi possivel inserir o filme, Tente novamente!</span>';
								}
							}else{
								echo $retorno;

							}

Share this post


Link to post
Share on other sites
alexmestre

fiz o print apos o $sql e aparece me os dados e a data certa

INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('mundfo', 'bifub', '20/03/2011', 'ksvdb', '1231', 'bskdvbadkva', 'uploads/1300636666.png')

e no campo ano  também não me aparece

Share this post


Link to post
Share on other sites
KTachyon

lool acho que não. Penso que fui explicito usar mysql_query em vez do sql

Hmm? Não percebi. O que eu estava a dizer é que ele só estava a mostrar a variável que tinha a query ($sql), não a função para executar a query na base de dados. Daí que assumi que ele estava a utilizar a função logo a seguir à query (que já tá confirmado ;)). Até porque nem tenho conhecimento de nenhuma função, de nome sql.

Tenta, em vez de '$data_post', colocar:

... , TO_DATE('$data_post', 'DD/MM/YYYY'),...

EDIT: Se ano é um valor numérico, não deves ter as ' '.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
alexmestre

nao da

com isso o sql nao funciona nem aparece mensagem de erro

nao entendo ;)

Share this post


Link to post
Share on other sites
fabiomiguel3

se usares sql funciona na mesma.

deverias ter feito isto

sql = "INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')";

quando eu te aconselhei a usar o mysql_query deverias ter feito isto

mysql_query("INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')");

Agora para verificar se a query foi bem sucedida ou não:

mysql_query("INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')") or die('Não foi possível inserir o filme');

echo "inserido com sucesso";

Share this post


Link to post
Share on other sites
fabiomiguel3

onde tem $data_post põe .$data_post. a ver se dá

assim:

mysql_query("INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '.$data_post.', '$sinopse', '$ano', '$link', '$ficheiro')") or die('Não foi possível inserir o filme');

Share this post


Link to post
Share on other sites
alexmestre

agora diz assim

  if(empty($retorno)){

							//cria uma query Mysql
							$query = mysql_query("INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')") or die('<span class="no">Não foi possível inserir o filme</span>');

								if($query === true){
									$sucesso = '<span  class="yes">A pagina ira ser redirecionada em poucos segundos, Obrigado!</span>';
									echo $sucesso;		
								}
							}else{
								echo $retorno;

							}

e ja aparece o ano

mas nao a data

Share this post


Link to post
Share on other sites
fabiomiguel3

agora diz assim

  if(empty($retorno)){

							//cria uma query Mysql
							$query = mysql_query("INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '$data_post', '$sinopse', '$ano', '$link', '$ficheiro')") or die('<span class="no">Não foi possível inserir o filme</span>');

								if($query === true){
									$sucesso = '<span  class="yes">A pagina ira ser redirecionada em poucos segundos, Obrigado!</span>';
									echo $sucesso;		
								}
							}else{
								echo $retorno;

							}

e ja aparece o ano

mas nao a data

Tu aí já não precisas do if query === true porque o die para o script e so executa o resto se for true

Share this post


Link to post
Share on other sites
KTachyon

Ó fábio, tanta besteira. Para verificar se a transacção foi bem sucedida tens que verificar a variável que é retornada pela função mysql_query(), ou ver o resultado da função mysql_error(). Não é só fazer um echo.

E, só utilizas os '.' para concatenar strings. Como a string é iniciada por " e não por ', não necessitas de colocar . naquela zona. No máximo podes fazer:

"INSERT INTO filmes (titulo, genero, data_post, sinopse, ano, link, imagem) VALUES ('$titulo', '$genero', '".$data_post."', '$sinopse', '$ano', '$link', '$ficheiro')"

E não percebo porque é que decides colocar a query toda dentro do mysql_query() em vez de a deixares na variável e chamares a função com a variável como argumento:

$result = mysql_query($sql);


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.