Sistema de votação online em PHP e MySQL

Este tutorial vai ensinar a fazer uma votação em PHP. Este votação será só de apenas uma escolha.

 
 
1. Criando o arquivo para votar:
 
Cria um ficheiro html e escreve a tua pergunta e respostas como
no exemplo seguinte:

<HTML>
<HEAD>
<TITLE>votação</TITLE>
</HEAD>
<BODY>
<FONT SIZE=”3″>Qual a sua base de dados preferida?</FONT><BR>
<FORM NAME=”votação” ACTION=”votacao.php” METHOD=”get”>
<INPUT TYPE=”radio” NAME=”escolha” VALUE=”1″>MySQL<BR>
<INPUT TYPE=”radio” NAME=”escolha” VALUE=”2″>msSQL<BR>
<INPUT TYPE=”radio” NAME=”escolha” VALUE=”3″>PostgreSQL<BR>
<INPUT TYPE=”radio” NAME=”escolha” VALUE=”4″>ODBC<BR>
</FORM>
</BODY>
</HTML>

 
2. Criando a tabela no MySQL:
 
Na shell do MySQL digite após selecionar uma Base de Dados escreva o seguinte código:

CREATE TABLE votacao (id INT(2) NOT NULL auto_increment primary key, descricao CHAR(50), votos CHAR(4));

Muito bem, a tabela foi criada e está pronta a usar. Para continuar, da mesma forma que criá-mos a tabela vamos agora inserir os seguintes códigos para adicionar as opções na tabela:

INSERT INTO votacao (descricao,votos) VALUES (“MySQL”,”0″);
INSERT INTO votacao (descricao,votos) VALUES (“msSQL”,”0″);
INSERT INTO votacao (descricao,votos) VALUES (“PostgreSQL”,”0″);
INSERT INTO votacao (descricao,votos) VALUES (“ODBC”,”0″);

Repara que só são adicionadas a descrição e os votos, mas não o ID, justamente
porque quando a tabela foi criada foi designada a função de AUTO_INCREMENT, o que fará com que ela automaticamente incremente o valor.

 
3. Criar o PHP que fará todo o trabalho:
 
Cria um ficheiro chamado votação.php e dentro dele coloque o seguinte código que será explicado detalhadamente:

<?

if ($escolha != “”) { // Verifica se foi inserido um voto e prossegue em frente no caso de verdade

// Variáveis a serem alteradas

$mysql_host = “”; // local do servidor MySQL
$mysql_user = “”: // utilizador do MySQL
$mysql_pass = “”; // senha do utilizador do MySQL
$mysql_dtbs = “”; // base de dados onde a tabela foi criada

$num_resp = “”; // número de opções na tua votação
$pergunta = “”; // pergunta da votação

// Nada mais a ser alterado

$mysql_conx = mysql_connect($mysql_host,$mysql_user,$mysql_pass);
// ligação ao MySQL

$radio = $num_resp + 1;
// para uso posterior

mysql_select_db($mysql_dtbs);
// seleciona a base de dados

// aqui começa todo o trabalho do PHP para actualizar a base de dados

$query_upd = “SELECT * FROM votacao WHERE id=$escolha”;
$resul_upd = mysql_query($query_upd);
// aqui o PHP selecciona apenas os registos que coincidem com a escolha, neste
// caso so uma opção

$obj_upd = mysql_fetch_object($resul_upd);
// o comando mysql_fetch_object() separa os resultados de uma query por colunas
// neste caso, $obj_upd -> descrição da opção que o utilizador votou

$vot_upd = $obj_upd->votos;
$vot_upd++;
// separa só os votos e adicinona mais um voto

$upd_upd = “UPDATE votacao SET votos=$vot_upd WHERE id=$escolha”;
mysql_query($upd_upd);
// atualizou a base de dados

// Agora o PHP fará a pesquisa na base de dados e retornará as opções, seus
// respectivos votos, total de votos e a sua escolha.

echo “<H3>” . $pergunta . “</H3>”;

for($i=1;$i<$radio;$i++) {

$query[$i] = “SELECT * FROM votação WHERE id=$i”;
$resul[$i] = mysql_query($query[$i]);
$objet[$i] = mysql_fetch_object($resul[$i]);

echo “<FONT FACE=\”Verdana\” SIZE=\”1\”><B>” . $objet[$i]->opcao . “</B> ” . $objet[$i]->descricao . “<B> ” . $objet[$i]->votos . “</B><BR>”;

$tot_vt += $objet[$i]->votos;

// tudo isto serve para requisitar o resultado de cada opção e exibir no écran

}
echo “<FONT SIZE=\”1\”><B>Total de votos:</B>” . $tot_vt . “&nbsp;&nbsp;&nbsp;<B>Sua Escolha</B>:” . $escolha . “</FONT></FONT>”;
}
?>

 

simples ne?

NOTICIAS RELACIONADAS:

  1. Sistema de votação online em PHP e MySQL
  2. Usar MySQL com PHP
  3. Criando um portal de notícias com área administrativa em PHP com MySQL
  4. Simples sistema de notícias que não possui Banco de Dados MySql
  5. Como instalar PHP, MySQL, PHPMyAdmin e FTP no Ubuntu

Leave a Reply

Spam Protection by WP-SpamFree