PHP E MYSQL - parte 5

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Neste artigo faremos a conexão com o banco de dados e a captura atraves do method POST dos dados preenchidos no formulário, inserindo no mysql.

CRIANDO O ARQUIVO adicionar.php


Como explicado no artigo anterior os dados do formulário sao transmitidos pelo method POST diretamente ao action do form, é neste arquivo que deve ser feita a captura.

Segue o codigo do arquivo adicionar.php:
___________________________________________________________________

<?php

 $conexao = mysql_connect("localhost", "root", "");
 $banco = mysql_select_db("noticias");

 $titulo = $_POST["titulo"];
 $conteudo = $_POST["conteudo"];
 $data = $_POST["data"];

if ($data != "") //testando se a variavel data é diferente de vazia
 {
 $sql = "INSERT INTO noticias (titulo, conteudo, datahora) VALUES ('$titulo','$conteudo',str_to_date('$data ".date('H:i:s')."', '%d/%m/%Y %H:%i:%s'))";
 var_dump($sql);
 }
 else
 { // se for vazia coloca a data atual atraves do banco de dados
 $sql = "INSERT INTO noticias (titulo, conteudo) VALUES ('$titulo','$conteudo')";
  var_dump($sql);
 }

 $insert = mysql_query($sql);
 if ($insert)
 {
  echo "Noticia inserida com sucesso!";
 }
 else
 {
  echo "Erro durante a inserção da notícia. Verifique os dados!" . mysql_error();
 }

?>

<a href="index.php">Voltar</a>
___________________________________________________________________

Salve este arquivo na mesma pasta do frmadicionar.php !

ANALISANDO O CÓDIGO


Na primeira parte do arquivo estamos conectando ao MYSQL
 
 $conexao = mysql_connect("localhost", "root", "");
 $banco = mysql_select_db("noticias");

O mysql_connect abrirá uma conexão com o MySQL da máquina local (localhost), usando o usuário (neste caso root) e senha (neste caso vazia).
Uma referência a esta conexão será gravada na variável $conexao.

Depois de conectados ao servidor, devemos conectar ao banco de dados usando o comando mysql_select_db
informando o nome do nosso database neste caso noticias.

 $titulo = $_POST["titulo"];
 $conteudo = $_POST["conteudo"];
 $data = $_POST["data"];

Neste trecho do código estamos capturando o que foi transmitido pelo POST. $titulo significa variavel título. No PHP variável inicia com o caracter $.
E
$_POST["titulo"]; esta capturando o que digitamos no campo titulo do formulario.

INSERINDO NO BANCO DE DADOS

Antes de fazer o insert no banco de dados estou testando se o campo data no formulário esta diferente de vazio ou seja se o usuário informou a data.

Se ele informou a data eu faço a inserção incluindo o campo datahora do banco de dados.

$sql = "INSERT INTO noticias (titulo, conteudo,datahora) VALUES ('$titulo','$texto',str_to_date('$data ".date('H:i:s')."', '%d/%m/%Y %H:%i:%s'))";

INSER INTO - Comando para inserção.

noticias - Tabela que desejamos fazer a inserção.

(titulo, conteudo, datahora) - Campos da tabela que desejamos inserir os dados.

('$titulo','$conteudo',str_to_date('$data ".date('H:i:s')."', '%d/%m/%Y %H:%i:%s')) - valores que vao ser inseridos nos campos (titulo, conteudo,datahora).

O valor do campo $date traz a data digitada pelo usuário. Apos
date('H:i:s') traz a hora atual.

Se o usuário nao informou a data o CURRENT_TIMESTAMP (definido no banco de dados) coloca a data atual e a hora atual, porisso nao colocamos o campo datahora dentro dos parenteses.
 
$sql = "INSERT INTO noticias (titulo, conteudo) VALUES ('$titulo','$texto')";

O trecho var_dump($sql); deixei apenas para poder ver o que esta na variável $sql pode ser retirado sem problemas.

Testando...

Primeiro abra o arquivo frmadicionar.php no browser de sua preferência.
 http://localhost/sitenoticias/frmadicionar.php

E digite no primeiro teste a data que você gostaria para a notícia!

EXEMPLO:




CLIQUE EM ENVIAR E VEJA O RESULTADO:







Apos este teste você percebe o que o VAR_DUMP faz , informa o tipo da variável e o conteudo.

Abra o MYSQL BROWSER e veja que o registro esta la ! Com a data que você informou e a hora atual.



AGORA FAREMOS O MESMO PROCEDIMENTO PARA A DATA NAO PREENCHIDA.

EXEMPLO:



CLIQUE EM ENVIAR E VEJA O RESULTADO:




Apos este teste você percebe o que o VAR_DUMP faz, informa o tipo da variável e o conteudo.

Abra o MYSQL BROWSER e veja que o registro esta la ! Com a data atual e a hora atual.




Apos colocar dentro da variável sql a instrução sql, é necessário executar no mysql
e quem faz isso é o mysql_query

 $insert = mysql_query($sql); // mysql_query executa a instrução sql que esta na variável $sql

 if ($insert) // testando se o $insert esta verdadeiro = se a inserção aconteceu
 {
  echo "Noticia inserida com sucesso!";
 }
 else
 {
  echo "Erro durante a inserção da notícia. Verifique os dados!" . mysql_error();
 }


O campo datahora é um timestamp tem data e hora isso faz com que eu consiga fazer uma listagem pela hora se por acaso durante a mesma data o usuário postar mais de uma noticia, deixando as mais atuais no topo da listagem.

Continuamos no proximo artigo fazendo a listagem dinamica das noticias.

Ate mais,

Obrigada Luzia
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?