pedrojr
19/12/2009, 01:17
Olá, venho compartilhar uma enquete simples em php, para estudo e uso.
Esta enquete foi feita no mini-curso de Php-MySql, do qual participei, realizado pela Secomp na UECE.
Tabela do banco:
CREATE TABLE enquetes (
id int(2) NOT NULL default '0',
nome varchar(100) NOT NULL default '',
op1 varchar(100) NOT NULL default '',
votos1 int(3) NOT NULL default '0',
op2 varchar(100) NOT NULL default '',
votos2 int(3) NOT NULL default '0',
op3 varchar(100) NOT NULL default '',
votos3 int(3) NOT NULL default '0',
op4 varchar(100) NOT NULL default '',
votos4 int(3) NOT NULL default '0',
exibir char(1) NOT NULL default ''
) TYPE=MyISAM;
INSERT INTO enquetes VALUES (1, 'O Que Você Achou do Meu Site', 'BOM', 0, 'Você chama isto de Site', 1, 'Nada Mal', 0, 'Péssimo', 0, 'S');
Código "config.php":
<?php
$host="localhost";
$user="root";
$senha="";
$dbname="banco";
?>
Código "open_db.php":
<?php
//Usuário e Senha
$con = mysql_connect($host,$user,$senha) or die("Erro ao conectar com o Banco");
//acessa ao banco especifico
mysql_select_db($dbname);
?>
Código "enquete.php":
<?php
/*Trecho para Computar Votos*/
include("config.php");
include("open_db.php");
if(isset($_POST['ok'])){
$enq = $_POST['enq'];
$ok = $_POST['ok'];
$id = $_POST['id'];
//Verifica se o visitante votou e se ele pode votar
if($ok=='Votar' && isset($enq) && !isset($_COOKIES['vota'])){
$query =("SELECT * FROM enquetes WHERE id=$id");
$resultado = mysql_query($query, $con); //Executa a consulta
$arr = mysql_fetch_array($resultado);
$voto = $arr[$enq];
$voto++;
$query2 = "UPDATE enquetes SET $enq = $voto WHERE id=$id";
$res = mysql_query($query2, $con); //Envia o voto
if($res){
//Define um cookie para verificar se o usuário já votou posteriormente
setcookie("vota", 'Votou');
echo "Sucesso !!!<br><hr>";
}
}
}
?>
<!-- Sua Página -->
<b> Vote na minha enquete </b><br>
<form action="#" method="post">
<!-- Para votar na Enquete-->
<?php
$query3 =("SELECT * FROM enquetes WHERE exibir='S'");
$resultado = mysql_query($query3, $con); //
$num = mysql_num_rows($resultado);
$arr = mysql_fetch_array($resultado);
$eu = $arr['id'];
echo($arr['nome']."<br></font>
<input type='radio' name='enq' value='votos1'> ".$arr['op1']."<br>
<input type='radio' name='enq' value='votos2'> ".$arr['op2']."<br>
<input type='radio' name='enq' value='votos3'> ".$arr['op3']."<br>
<input type='radio' name='enq' value='votos4'> ".$arr['op4']."<br><br>
<input type='hidden' name='id' value=".$arr['id']."> ");
echo("<input type='submit' name='ok' value='Votar'><br>
<a href=\"resul.php?id=$eu\">Resultados</a>");
?></form>
Código "resul.php":
<html>
<head>
<?php
include("config.php");
include("open_db.php");
if($con){
$id = (int)$_GET['id'];
$query =("SELECT * FROM enquetes WHERE id=$id");
$resultado = mysql_query($query,$con);
//retorna uma array com resultados
$arr = mysql_fetch_array($resultado);
//Cálculos para a porcentagem dos votos
$tudo = $arr['votos1'] + $arr['votos2'] + $arr['votos3'] + $arr['votos4'] ;
//Quantos votos no geral
$op1 = number_format(($arr['votos1']/$tudo) * 100 , 2, '.', ' ');
$op2 = number_format(($arr['votos2']/$tudo) * 100, 2, '.', ' ');
$op3 = number_format(($arr['votos3']/$tudo) * 100, 2, '.', ' ');
$op4 = number_format(($arr['votos4']/$tudo) * 100, 2, '.', ' ');
?>
<title>Resultado da enquetes</title>
<style>
<?php
echo("
#resut {width: 100px; border-width: 0 %}
#casa {background: '#ff0000'; width: $op1 %}
#bbb {background: '#00ff00'; width: $op2 %}
#nenhum {background: '#0000ff'; width: $op3 %}
#oque {background: '#aaaaaa'; width: $op4 %}");
?>
#c {background: '#ff0000'; width: 10px }
#b {background: '#00ff00'; width: 10px }
#n {background: '#0000ff'; width: 10px }
#o {background: '#aaaaaa'; width: 10px }
body {background: '#FFFFFF'; font-family: Verdana; font-size: 10pt}
#titulo {background: '#FFFFFF'; color: '#000000'; font-family: Verdana; font-size: 12pt}
td.res {color: '#000000'; font-family: verdana; font-size: 8pt}
</style>
</head>
<body>
<?php
echo("<div id='titulo'><b>".$arr['nome']."</b></div>
<table id='tabela'>
<tr><td class='res'>".$arr['op1']." </td>
<td width=110px><span id='c'></span><span id='resut'><span id='casa'></span></span></td>
<td> $op1% </td></tr>
<tr><td class='res'> ".$arr['op2']." </td>
<td width=110px><span id='b'></span><span id='resut'><span id='bbb'></span></span></td>
<td> $op2% </td></tr>
<tr><td class='res'> ".$arr['op3']." </td>
<td width=110px><span id='n'></span><span id='resut'><span id='nenhum'></span></span> </td>
<td> $op3% </td></tr>
<tr><td class='res'> ".$arr['op4']." </td>
<td width=110px><span id='o'></span><span id='resut'><span id='oque'></span></span></td>
<td> $op4%</td></tr>
</table><br> Total de votos: $tudo");
}else{
echo "<h1>Erro !!!</h1>";
}
?>
<br><br>
<a href='javascript:self.close()'> [fechar] </a>
</body>
</html>
Explicando os arquivos:
config.php - configura parâmetros
open_db.php - abre conexão
enquete.php - dados da emquete
resul.php - mostra resultados
Bom é isso, espero que gostem e que seja útil!
Qualquer dúvida ou sugestão é só postar.
Vlw's :cool:
Esta enquete foi feita no mini-curso de Php-MySql, do qual participei, realizado pela Secomp na UECE.
Tabela do banco:
CREATE TABLE enquetes (
id int(2) NOT NULL default '0',
nome varchar(100) NOT NULL default '',
op1 varchar(100) NOT NULL default '',
votos1 int(3) NOT NULL default '0',
op2 varchar(100) NOT NULL default '',
votos2 int(3) NOT NULL default '0',
op3 varchar(100) NOT NULL default '',
votos3 int(3) NOT NULL default '0',
op4 varchar(100) NOT NULL default '',
votos4 int(3) NOT NULL default '0',
exibir char(1) NOT NULL default ''
) TYPE=MyISAM;
INSERT INTO enquetes VALUES (1, 'O Que Você Achou do Meu Site', 'BOM', 0, 'Você chama isto de Site', 1, 'Nada Mal', 0, 'Péssimo', 0, 'S');
Código "config.php":
<?php
$host="localhost";
$user="root";
$senha="";
$dbname="banco";
?>
Código "open_db.php":
<?php
//Usuário e Senha
$con = mysql_connect($host,$user,$senha) or die("Erro ao conectar com o Banco");
//acessa ao banco especifico
mysql_select_db($dbname);
?>
Código "enquete.php":
<?php
/*Trecho para Computar Votos*/
include("config.php");
include("open_db.php");
if(isset($_POST['ok'])){
$enq = $_POST['enq'];
$ok = $_POST['ok'];
$id = $_POST['id'];
//Verifica se o visitante votou e se ele pode votar
if($ok=='Votar' && isset($enq) && !isset($_COOKIES['vota'])){
$query =("SELECT * FROM enquetes WHERE id=$id");
$resultado = mysql_query($query, $con); //Executa a consulta
$arr = mysql_fetch_array($resultado);
$voto = $arr[$enq];
$voto++;
$query2 = "UPDATE enquetes SET $enq = $voto WHERE id=$id";
$res = mysql_query($query2, $con); //Envia o voto
if($res){
//Define um cookie para verificar se o usuário já votou posteriormente
setcookie("vota", 'Votou');
echo "Sucesso !!!<br><hr>";
}
}
}
?>
<!-- Sua Página -->
<b> Vote na minha enquete </b><br>
<form action="#" method="post">
<!-- Para votar na Enquete-->
<?php
$query3 =("SELECT * FROM enquetes WHERE exibir='S'");
$resultado = mysql_query($query3, $con); //
$num = mysql_num_rows($resultado);
$arr = mysql_fetch_array($resultado);
$eu = $arr['id'];
echo($arr['nome']."<br></font>
<input type='radio' name='enq' value='votos1'> ".$arr['op1']."<br>
<input type='radio' name='enq' value='votos2'> ".$arr['op2']."<br>
<input type='radio' name='enq' value='votos3'> ".$arr['op3']."<br>
<input type='radio' name='enq' value='votos4'> ".$arr['op4']."<br><br>
<input type='hidden' name='id' value=".$arr['id']."> ");
echo("<input type='submit' name='ok' value='Votar'><br>
<a href=\"resul.php?id=$eu\">Resultados</a>");
?></form>
Código "resul.php":
<html>
<head>
<?php
include("config.php");
include("open_db.php");
if($con){
$id = (int)$_GET['id'];
$query =("SELECT * FROM enquetes WHERE id=$id");
$resultado = mysql_query($query,$con);
//retorna uma array com resultados
$arr = mysql_fetch_array($resultado);
//Cálculos para a porcentagem dos votos
$tudo = $arr['votos1'] + $arr['votos2'] + $arr['votos3'] + $arr['votos4'] ;
//Quantos votos no geral
$op1 = number_format(($arr['votos1']/$tudo) * 100 , 2, '.', ' ');
$op2 = number_format(($arr['votos2']/$tudo) * 100, 2, '.', ' ');
$op3 = number_format(($arr['votos3']/$tudo) * 100, 2, '.', ' ');
$op4 = number_format(($arr['votos4']/$tudo) * 100, 2, '.', ' ');
?>
<title>Resultado da enquetes</title>
<style>
<?php
echo("
#resut {width: 100px; border-width: 0 %}
#casa {background: '#ff0000'; width: $op1 %}
#bbb {background: '#00ff00'; width: $op2 %}
#nenhum {background: '#0000ff'; width: $op3 %}
#oque {background: '#aaaaaa'; width: $op4 %}");
?>
#c {background: '#ff0000'; width: 10px }
#b {background: '#00ff00'; width: 10px }
#n {background: '#0000ff'; width: 10px }
#o {background: '#aaaaaa'; width: 10px }
body {background: '#FFFFFF'; font-family: Verdana; font-size: 10pt}
#titulo {background: '#FFFFFF'; color: '#000000'; font-family: Verdana; font-size: 12pt}
td.res {color: '#000000'; font-family: verdana; font-size: 8pt}
</style>
</head>
<body>
<?php
echo("<div id='titulo'><b>".$arr['nome']."</b></div>
<table id='tabela'>
<tr><td class='res'>".$arr['op1']." </td>
<td width=110px><span id='c'></span><span id='resut'><span id='casa'></span></span></td>
<td> $op1% </td></tr>
<tr><td class='res'> ".$arr['op2']." </td>
<td width=110px><span id='b'></span><span id='resut'><span id='bbb'></span></span></td>
<td> $op2% </td></tr>
<tr><td class='res'> ".$arr['op3']." </td>
<td width=110px><span id='n'></span><span id='resut'><span id='nenhum'></span></span> </td>
<td> $op3% </td></tr>
<tr><td class='res'> ".$arr['op4']." </td>
<td width=110px><span id='o'></span><span id='resut'><span id='oque'></span></span></td>
<td> $op4%</td></tr>
</table><br> Total de votos: $tudo");
}else{
echo "<h1>Erro !!!</h1>";
}
?>
<br><br>
<a href='javascript:self.close()'> [fechar] </a>
</body>
</html>
Explicando os arquivos:
config.php - configura parâmetros
open_db.php - abre conexão
enquete.php - dados da emquete
resul.php - mostra resultados
Bom é isso, espero que gostem e que seja útil!
Qualquer dúvida ou sugestão é só postar.
Vlw's :cool: