CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

PHP - Enquete

Por Benedito Silva Júnior - publicado em 20/07/2016


Enquetes são recursos interessantes para aumentar a interatividade de sites com seus visitantes. Támbém é uma ferramenta poderosa para realizar pesquisas e obter feedback.

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›"; } }


 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo