Sistema de Comentários PHP - MySQL

Esse artigo ensina de maneira fácil como desenvolver um Sistema de Comentário utilizando PHP e MySQL. Dessa vez vamos aprender a criar um sistema de comentários em PHP. Vou usar o seguinte critério, coloco o código e logo em seguida o explico.

Por | @samyrabdo Programação

Dessa vez vamos aprender a criar um sistema de comentários em PHP. Vou usar o seguinte critério, coloco o código e logo em seguida o explico.

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")
  • Responsável 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).

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 formulario.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>

Abaixo, segue uma imagem do Sistema em execução:
Sistema de Comentários PHP - MySQL



Vocês podem perceber que a data está sendo exibida no formato ano/mes/dia, no próximo artigo vou mostrar como exibir a data no padrão brasileiro(dia/mês/ano).

Espero que tenham gostado e colaborem deixando dicas, sugestões ou dúvidas. Até a próxima.

Mais sobre: php, programação, mysql
Share Tweet
DESTAQUESRecomendadoMais compartilhados
Comentários