Tutoriais sobre Informática e Tecnologias

PHP

Como criar enquete com PHP

Enquetes são recursos interessantes para aumentar a interatividade de sites com seus visitantes. Também é uma ferramenta poderosa para realizar pesquisas e obter feedback. Neste post, veja como criar enquete com PHP.

A enquete deste exemplo é composta de duas tabelas, uma para as perguntas (enquete) e outra para as respostas (respostas).

As estruturas SQL das tabelas são:

Para a tabela “enquete”:

INSERT INTO `enquete` VALUES (1,'Enquete');

Para a tabela “respostas”:

CREATE TABLE `respostas` (
	`Id` int(11) NOT NULL AUTO_INCREMENT,
	`enquetes_id` int(11) unsigned NOT NULL DEFAULT '0',
	`resposta` varchar(255) DEFAULT NULL,
	`votos` int(11) unsigned NOT NULL DEFAULT '0',
	PRIMARY KEY (`Id`)
	) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

Código PHP:

  //Dados para a conexão com o banco de dados
  $servidor = 'localhost';
  $usuario = 'root';
  $senha = '12345';
  $banco = 'nome_banco';
   
  $link = mysql_connect($servidor, $usuario, $senha) or die('Não foi possivel conectar: 
  ' . mysql_error());  
  $select = mysql_select_db($banco); 
  $_REQUEST["action"] = "voto";
	  
  //Verifica se o arquivo foi chamado a partir de um formulário
  if($_REQUEST["action"] == "votar")//se a var. action passada via URL for igual a "votar"
  {
    /* CÓDIGO DE VOTAR */
    
    //isset: para saber se uma variável existe 
    (retorna verdadeiro se existir e falso se não existir)
    
    //verifica se o voto válido foi enviado ao servidor
    if(isset($_POST["voto"]) && $_POST["voto"] != "")
    {
      $sql =  "UPDATE respostas SET votos = votos + 1 WHERE Id = ".$_POST["voto"];
      $result = mysql_query($sql); 	   
    }
     $sql = "UPDATE respostas SET votos = votos + 1 WHERE Id = ".$_POST["voto"];
     header("location: ?action=resultados"); //redireciona para visualizar os resultados
  }
  else if($_REQUEST["action"] == "resultados")
  {
    /* CÓDIGO DE VISUALIZAR OS RESULTADOS */
    
    // Seleciona a enquete mais recente
    $sql = "SELECT * FROM enquetes ORDER BY Id ASC LIMIT 1";
    $result = mysql_query($sql);
    if($tbl = mysql_fetch_array($result))
    {
      echo "".$tbl["enquete"]."";
            
    // Navega pelas respostas, exibindo em ordem de votos
     $sql = "SELECT * FROM resp WHERE enquetes_id = ".$tbl["Id"]." ORDER BY votos DESC";
     $result = mysql_query($sql);
      while($tbl = mysql_fetch_array($result))
      {
        echo "‹BR>".$tbl["resposta"]." (".$tbl["votos"]." votos)";
      }
    }
  }
  else //se variável action = 'voto' ...
  {
    /* CÓDIGO DE VISUALIZAR A ENQUETE */
      
    // Seleciona a enquete mais recente
    $sql = "SELECT * FROM enquetes ORDER BY Id ASC LIMIT 1";
    $result = mysql_query($sql);
    if($tbl = mysql_fetch_array($result))
    {
      echo "‹B>".$tbl["enquete"]."‹B>";        
        
   // Navega pelas respostas
   echo "<FORM action='?action=votar' method='POST'>";
   $sql = "SELECT * FROM respostas WHERE enquetes_id = ".$tbl["Id"]." ORDER BY Id ASC";
   $result = mysql_query($sql);
	  
   while($tbl = mysql_fetch_array($result))
   {
   echo "<BR›<INPUT type='RADIO' name='voto' value='".$tbl["Id"]."'› ".$tbl["resposta"]."";
   }	  
   echo "<center›<BR›<INPUT type='SUBMIT' value='Votar'›</center›";
   echo "</FORM›";
  }
 } 
DESEJA APRIMORAR SEUS CONHECIMENTOS EM PHP ORIENTADO A OBJETOS?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

Link do curso: https://go.hotmart.com/A18082772K

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *