Jump to content

Script para por comentarios


Devexz
 Share

Recommended Posts


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>
<h3>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>
<h3>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 formulário.php
<HTML>
<HEAD>
<TITLE>Comentários</TITLE>
</HEAD>
<BODY>
<h3>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>


Espero ter-lhe ajudado  :smoke:

Link to comment
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
 Share

×
×
  • 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.