Então mãos a obra:
Primeiro passo é criar o nosso Banco de Dados
CREATE DATABASE bdcomentarios
Cria o banco bdcomentarios.
Após criado o banco, vamos criar a tabela.
A tabela conterá as coluna 'id', 'nome', 'email', 'data' e 'comentário'.
CREATE TABLE `tbcomentarios` (
'id' INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'nome' VARCHAR( 30 ) NOT NULL ,
'email' VARCHAR( 30 ) NOT NULL ,
'data' DATE NOT NULL ,
'comentario' VARCHAR( 255 ) NOT NULL
) ;
- CREATE TABLE 'tbcomentarios'
Cria a tabela tbcomentarios
- 'id' INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY
Cria uma coluna chamada 'id' do tipo inteiro de tamanho 5
- PRIMARY KEY
Determina que o atributo 'id' será chave primária
- AUTO_INCREMENT
Significa que a cada novo registro inserido, o valor do atributo 'id' será acrescido de 1 unidade automaticamente.
- 'nome' VARCHAR(30) NOT NULL,
- 'email' VARCHAR(30) NOT NULL,
- 'comentario' VARCHAR(255) NOT NULL
Criar os atributos nome, email e comentario, do tipo varchar e com tamanhos de 30,30,255 respectivamente.
- 'data' DATE NOT NULL
Cria na tabela o atributo data do tipo DATE. Obs: não necessita definir o tamanho. No MySQL o formato padrão da data é ano/mês/dia, por ex: 2010/06/17.
Criado o nosso banco de dados 'bdcomentarios', e a tabela 'tbcomentarios' vamos para o PHP.
Crie um novo arquivo php com o nome formulário.php
A primeira coisa após criado o arquivo é colocar as tags HTML
<HTML>
<HEAD>
<TITLE>Sistemas de Comentários</TITLE>
</HEAD>
<BODY>
<h2>Comentários Enviados pelos Usuários</h3>
Não vou detalhar pois o nosso foco é o php e não o HTML.
Depois disso vamos, conectar ao banco de dados através do php:
<?php
$conexao = mysql_connect("localhost",'root','');
$bd = mysql_select_db("bdcomentarios");
?>
- "localhost"
Endereço do servidor onde executa os scripts php, nesse caso coloquei localhost, por está rodando em meu computador;
- 'root'
Nome de usuário do banco de dados
- ' '
Destinado a senha, nesse caso não tem senha, portanto o deixei vazio.
- mysql_select_db("bdcomentarios")
Responsavel por selecionar o banco de dados a ser usado, no nosso caso o banco criado foi bdcomentarios.
Até agora o nosso código está assim:
<HTML>
<HEAD>
<TITLE>Comentários</TITLE>
</HEAD>
<BODY>
<h2>Comentários Enviados pelos Usuários</h3>
<?php
$link=mysql_connect("localhost","root","");
$banco=mysql_select_db("bdcomentarios");
?>
Agora vamos criar o formulário a ser usado, para isso acrescente o seguinte código:
<form name="form" method="post" action="#">
Nome:
<input type=text name=nome>
<br><br>
E-Mail:
<input type=text name=email>
<br><br>
Mensagem:
<br><textarea name=comentario></textarea>
<br><br>
<input type=submit value=Enviar>
<input type=reset value=Limpar>
</form>
<hr>
Como já disse antes, o objetivo é o PHP e não o HTML, portanto só vou explicar o seguinte trecho de código:
action="#" - significa que ao clicar no botão "enviar" os dados serão enviados para o próprio arquivo formulario.php e processados.
Agora vamos para o código php responsável pela inserção dos dados no banco e exibição dos mesmos:
<?php
$nome=$_POST['nome'];
$email=$_POST['email'];
$data = date("Y/m/d");
$comentario=$_POST['comentario'];
?>
Esse código faz com que as variáveis $nome, $email, $data e $comentario
recebam os valores que foram digitados nos campo do formulário.
$nome= $_POST['nome'];
A variavel $nome recebe o valor digitado no campo do formulário que possue o name = 'nome'
$data = date("Y/m/d");
A variável $data é diferente por se tratar de manipulacao de data,
portanto, "date(Y/m/d)" siginifica que a variável $data vão receber a
data do envio do formulário no formato ano,mês,dia(Y/m/d).
if(strlen($_POST['nome'])) #insere somente se no form foi escrito o nome
Agora vamos inserir os dados no banco de dados:
$insert = mysql_query("INSERT INTO tbcomentarios(nome,email,data,comentario)
values('$nome','$email','$data','$comentario')");
As colunas nome,email,data e comentario da tabela tbcomentários vão
receber o valor contido nas variáveis '$nome','$email','$data' e
'$comentario' respectivamente.
Agora vamos fazer a consulta no banco de dados e exibi-las:
$sql = "SELECT * FROM tbcomentarios ORDER BY id desc";
O código acima seleciona todos os comentários postados e os exibe em
ordem decrescente de acordo com o id. O comando "order by id" significar
ordenar por 'id' e o comando "DESC" ordenar em ordem decrescente. Isso
faz com que os comentários sejam exibidos do último postado até o
primeiro.
$executar = mysql_query($sql);
O comando mysql_query() é responsável por enviar uma consulta MySQL;
E para listar todos os comentários vamos fazer um while para exibir todos os dados:
while( $exibir = mysql_fetch_array($executar)){
echo $exibir['data'];
echo "</br>";
echo $exibir['nome'];
echo "</br>";
echo $exibir['email'];
echo "</br>";
echo $exibir['comentario'];
echo "</br><hr>";
}
?>
$exibir = mysql_fetch_array($executar)
Esse comando retorna uma matriz que corresponde a linha obtida na
consulta. A variável $exibir é responsável por receber os dados dessa
matriz.
Por fim, os comando echo $exibir['data']; echo $exibir['nome'] ... vão exibir os dados retornados da consulta.
Abaixo listo o código final:
Criação do banco e da tabela:
CREATE DATABASE bdcomentarios
CREATE TABLE `tbcomentarios` (
'id' INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'nome' VARCHAR( 30 ) NOT NULL ,
'email' VARCHAR( 30 ) NOT NULL ,
'data' DATE NOT NULL ,
'comentario' VARCHAR( 255 ) NOT NULL
) ;
Arquivo formulário.php
<HTML>
<HEAD>
<TITLE>Comentários</TITLE>
</HEAD>
<BODY>
<h2>Comentários Enviados pelos Usuários</h3>
<?php
$link=mysql_connect("localhost",'root','');
$banco=mysql_select_db("bdcomentarios");
?>
<form name="form" method="post" action="#">
Nome:
<input type=text name=nome>
<br><br>E-Mail:
<input type=text name=email>
<br><br>Mensagem:<br>
<textarea name=comentario></textarea>
<br><br>
<input type=submit value=Enviar>
<input type=reset value=Limpar>
</form>
<hr>
<?php
$nome=$_POST['nome'];
$email=$_POST['email'];
$data = date("Y/m/d");
$comentario=$_POST['comentario'];
if(strlen($_POST['nome'])) #insere somente se no form foi escrito o nome
{
$insert = mysql_query("INSERT INTO tbcomentarios(nome,email,data,comentario)
values('$nome','$email','$data','$comentario')");
}
$sql = "SELECT * FROM tbcomentarios ORDER BY id desc";
$executar=mysql_query($sql);
while( $exibir = mysql_fetch_array($executar)){
echo $exibir['data'];
echo "</br>";
echo $exibir['nome'];
echo "</br>";
echo $exibir['email'];
echo "</br>";
echo $exibir['comentario'];
echo "</br><hr>";
}
?>
</BODY>
</HTML>
Este comentário foi removido pelo autor.
ResponderExcluir