Continuando a primeira aula, vamos gerar a exibição da enquete.

Assista a video aula para entender cada arquivo, estou explicando detalhadamente.

Começando crie um arquivo chamado conexao.php

//este arquivo é responsavel pela conexao do banco de dados
$host = "localhost";
$database = "enquete";
$login_db = "root";
$senha_db = "pass123";

$conexao = mysql_connect ($host, $login_db, $senha_db) or die ("Erro: ".mysql_error());
$db = mysql_select_db($database);

Agora vamos criar o arquvo enquete.php para mostrar nossa enquete.
A imagem abaixo mostra como será o resultado no final.

Enquete

////////////////arquivo enquete_comentar.php


/*
desenvolvido por Fabiano Bento
http://www.fabianobento.com.br
*/
//arquivo CSS de estilos


//java script para validar formulário




//verifica se existe a variavel ACT no GET if(isset($_GET['act'])){ $act = $_GET['act']; switch ($act) { case "escrever": echo "Escreva seu comentário!"; //cria o formulário e envia para o mesmo arquivo e seta avariavel act
Nome:
E-mail:
Cidade:
Estado:
Comentário:

 
//termina o switct break; //verifica se o valor de ACT é igual a inc case "inc": //chama o arquivo de conexao com o banco require_once('inc/conexao.php'); $codigo_enquete = $_POST['codigo_enquete']; $ip = getenv('REMOTE_ADDR'); $provedor = gethostbyaddr($_SERVER['REMOTE_ADDR']); $datahora = date(" Y-m-d H:i:s"); $form_nome = $_POST['nome']; $form_email = $_POST['email']; $form_cidade = $_POST['cidade']; $form_uf = $_POST['uf']; $form_comentario = $_POST['comentario']; $form_btn_comentar = $_POST['btn_comentar']; $enqcStatus = "A"; //grava os dados dentro da tabela enquetes comentarios $sql = " INSERT INTO enquetes_comentarios (`enqcCodigo` ,`enqcCodEnquete` ,`enqcIpEnvio` ,`enqcProvedorEnvio` ,`enqcDtHrEnvio` ,`enqcNome` ,`enqcEmail` ,`enqcCidade` ,`enqcUF` ,`enqcComentario` ,`enqcStatus`)VALUES (' ', '$codigo_enquete', '$ip', '$provedor', '$datahora', '$form_nome', '$form_email', '$form_cidade', '$form_uf', '$form_comentario', '$enqcStatus')"; mysql_query("$sql"); echo ""; echo ""; break; } } ?>

Tela do formulário do arquivo enquete_comentar.php
Tela formulário comentário

Explicando o conteudo e funcionamento de cada arquivo.
*Lembrando que o texto antes da barra é o nome da pasta.

enquete/inc/conexao.php - função que conecta no banco de dados
enquete/enquete.php - este arquivo mostra a enquete com as opções para votar e links para comentar e resultado
enquete/enquete_resultado.php - aqui mostra o resultado da enquete e comentários
enquete/enquete_comentar.php - este é o formulário para envio dos comentarios
enquete/enquete_votar.php - este arquivo recebe os dados do arquivo enquete.php e grava a opções escolhida no banco de dados

Nesta aula, vou ensinar com desenvolver um sistema de enquetes para ilimitadas enquetes.
Primeiro nos vamos criar o banco de dados e as tabelas para armazenar as enquetes, os votos, comentarios, e log de registros os votos.

Assista ao video para entender sobre cada coluna das tabelas

O SQL das tabelas;

//tabela enquetes

CREATE TABLE IF NOT EXISTS `enquetes` (
  `enqCodigo` int(10) NOT NULL AUTO_INCREMENT COMMENT 'codigo da enquete',
  `enqDtCadastro` date NOT NULL COMMENT 'data do cadastro',
  `enqNmEnquete` varchar(200) NOT NULL COMMENT 'pergunta da enquete',
  `enqOpcao1` varchar(150) NOT NULL COMMENT 'resposta 1',
  `enqOpcao2` varchar(150) NOT NULL COMMENT 'resposta 2',
  `enqOpcao3` varchar(150) NOT NULL COMMENT 'resposta 3',
  `enqOpcao4` varchar(150) NOT NULL COMMENT 'resposta 4',
  `enqOpcao5` varchar(150) NOT NULL COMMENT 'resposta 5',
  `enqOpcao6` varchar(150) NOT NULL COMMENT 'resposta 6',
  `enqOpcao7` varchar(150) NOT NULL COMMENT 'resposta 7',
  `enqOpcao8` varchar(150) NOT NULL COMMENT 'resposta 8',
  `enqOpcao9` varchar(150) NOT NULL COMMENT 'resposta 9',
  `enqOpcao10` varchar(150) NOT NULL COMMENT 'resposta 10',
  `enqVotos1` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 1',
  `enqVotos2` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 2',
  `enqVotos3` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 3',
  `enqVotos4` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 4',
  `enqVotos5` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 5',
  `enqVotos6` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 6',
  `enqVotos7` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 7',
  `enqVotos8` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 8',
  `enqVotos9` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 9',
  `enqVotos10` int(10) NOT NULL DEFAULT '0' COMMENT 'htis 10',
  `enqDtInicioExibicao` date NOT NULL COMMENT 'data inicio da exiicao',
  `enqDtFinalExibicao` date NOT NULL COMMENT 'data final da exibicao',
  `enqStatus` enum('A','I') NOT NULL DEFAULT 'A' COMMENT 'ativo ou inativo',
  PRIMARY KEY (`enqCodigo`,`enqNmEnquete`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='Entidade para os dados das enquetes' AUTO_INCREMENT=1 ;


//tabela enquetes_comentarios

CREATE TABLE IF NOT EXISTS `enquetes_comentarios` (
  `enqcCodigo` int(20) NOT NULL AUTO_INCREMENT COMMENT 'codigo do comentario',
  `enqcCodEnquete` int(10) NOT NULL,
  `enqcIpEnvio` varchar(30) NOT NULL COMMENT 'ip do usuario',
  `enqcProvedorEnvio` varchar(150) NOT NULL COMMENT 'provedor do ip',
  `enqcDtHrEnvio` datetime NOT NULL COMMENT 'data e hora do envio',
  `enqcNome` varchar(40) NOT NULL COMMENT 'nome que quem enviou',
  `enqcEmail` varchar(60) NOT NULL COMMENT 'email de quem envu',
  `enqcCidade` varchar(150) NOT NULL,
  `enqcUF` char(2) NOT NULL,
  `enqcComentario` mediumtext NOT NULL COMMENT 'comentáro',
  `enqcStatus` enum('A','I') NOT NULL,
  PRIMARY KEY (`enqcCodigo`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='Entidade para os comentários das enquetes' AUTO_INCREMENT=1 ;


//tabela enquete_log

CREATE TABLE IF NOT EXISTS `enquetes_log` (
  `enqlCodigo` int(30) NOT NULL AUTO_INCREMENT COMMENT 'codigo do envio',
  `enqlCodEnquete` int(10) NOT NULL COMMENT 'codigo da enquete',
  `enqlIpEnvio` varchar(30) NOT NULL COMMENT 'ip que enviou',
  `enqlDtHrEnvio` datetime NOT NULL COMMENT 'data e hora do envio',
  `enqlOpcao` varchar(5) NOT NULL,
  PRIMARY KEY (`enqlCodigo`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='Entidade para os dados de log dos votos' AUTO_INCREMENT=2 ;