PHP E MYSQL - parte 5
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ê está em:
canal PHP
Publicidade
Luzia Bolsi
Space do autor
Cursando a faculdade de Bacharel em Sistemas da Informação pela UNISINOS/RS, tecnica em tecnologia da informação. Programadora php e webdesigner. Site: www.decasoft.com.br
Space do autor


0
0
