Exercício de PHP + MYSQL > Criação de SISTEMA DE COMENTÁRIOS. PHP + MYSQL > SISTEMA DE COMENTÁRIOS. Vamos aprender a criar um sistema de comentários em PHP. Será usado seguinte código: Primeiro passo é criar a Base de Dados CREATE DATABASE bdcomentarios Após criada a BD, vamos criar a tabela “tbcomentarios” A tabela conterá as colunsa 'id', 'nome', 'email', 'data' e 'comentário'. Cria a tabela tbcomentarios: CREATE TABLE '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 registo 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: 2011/06/17. No final ficará com este aspecto: 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 ) ; Criado a BD 'bdcomentarios', e a tabela 'tbcomentarios' iremos escrever código PHP. Crie um novo arquivo PHP com o nome formulario.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 Utilizadores</h3> Não vou detalhar pois o nosso foco é o php e não o HTML. Formador: António José Araújo FT 0155 – Base de Dados para a Internet Exercício de PHP + MYSQL > Criação de SISTEMA DE COMENTÁRIOS. Depois disso vamos, ligar à BD através do PHP: <?php $ligacao = mysql_connect("localhost",'root',''); $bd = mysql_select_db("bdcomentarios"); ?> Endereço do servidor onde executa os scripts PHP, colocamos localhost, por estares a utilizar o seu computador; "localhost" Nome de utilizador da BD 'root' A password da BD, neste caso não tem password, portanto deixamos vazio. '' Responsável por selecionar a BD a ser usada, será o código: mysql_select_db("bdcomentarios") O código neste momento ficará assim: <HTML> <HEAD> <TITLE>Comentários</TITLE> </HEAD> <BODY> <h3>Comentários Enviados pelos Utilizadores</h3> <?php $ligacao = mysql_connect("localhost",'root',''); $bd = mysql_select_db("bdcomentarios"); ?> Agora vamos criar o formulário a ser utilizado, para isso acrescentemos 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> Formador: António José Araújo FT 0155 – Base de Dados para a Internet Exercício de PHP + MYSQL > Criação de SISTEMA DE COMENTÁRIOS. O objetivo até aqui será o PHP e não o HTML, portanto explicando o seguinte 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 na BD e a visualização dos mesmos: <?php $nome=$_POST['nome']; $email=$_POST['email']; $data = date("Y/m/d"); $comentario=$_POST['comentario']; ?> Este código faz com que as variáveis $nome, $email, $data e $comentario recebam os valores que foram digitados nos campos 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 manipulação de data, portanto, "date(Y/m/d)" significa 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 na BD: $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 na BD e exibir os dados nela contidos: $sql = "SELECT * FROM tbcomentarios ORDER BY id desc"; O código acima seleciona todos os comentários inseridos e exibe-os por ordem decrescente de acordo com o id. O comando "order by id" significa que será ordenado por 'id' e o comando "DESC" ordena por ordem decrescente. Isso faz com que os comentários sejam exibidos do último para 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>"; } ?> Formador: António José Araújo FT 0155 – Base de Dados para a Internet Exercício de PHP + MYSQL > Criação de SISTEMA DE COMENTÁRIOS. $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 comandos echo $exibir['data']; echo $exibir['nome'] ... vão exibir os dados devolvidos da consulta. A SEGUIR SERÁ MOSTRADO TODO O CÓDIGO FINAL: Criação da BD 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 ); Ficheiro formulário.php <HTML> <HEAD> <TITLE>Comentários</TITLE> </HEAD> <BODY> <h3>Comentários Enviados pelos Utilizadores</h3> <?php $ligacao=mysql_connect("localhost",'root',''); $bd=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 apenas se no form foi escrito o nome Formador: António José Araújo FT 0155 – Base de Dados para a Internet Exercício de PHP + MYSQL > Criação de SISTEMA DE COMENTÁRIOS. { $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> Segue abaixo uma imagem do Sistema de Comentários em funcionamento: Comentários Enviados pelos Utilizadores Bom trabalho! Cumprimentos, António José Araújo Formador: António José Araújo FT 0155 – Base de Dados para a Internet