Language:

Online voting system in PHP and MySQL

11 February 2011 | In Web | 2,7 thousand views | By

Click & share: 


This tutorial will teach you to do a poll in PHP. This vote will have only one option as an example.

1. Creating o arquivo para votar:

Create an html file and write your questions and answers as
in the following example:

<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. Creating a table in MySQL:

In the MySQL shell enter after selecting a database type the following code:

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

Very well, the table has been created and is ready to use. To continue, in the same way as create table we now insert reliquary the following codes to add the options in the table:

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");

Repairs that are only added description and votes, but not the ID, precisely
because when the table was created was designated the AUTO_INCREMENT function, What will cause it to automatically increment the value.

3. Create the PHP that will make every work:

Creates a file called votação.php and place the following code inside of it that will be explained in detail:

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

And here ends the tutorial of how to make a vote, of course, You can and you should modify the layout of the vote, adapt to allow only one vote per day (using cookies) etc.

In Ivaiporã-PR, Computer engineer, Workgroup Administrator Tips in General. Passionate about technology and Informatics.



A bit about us

    The Group generally appeared in Tips 2007 from innovative ideas on troubleshooting problems faced daily by those who use the technology and computer science, both ordinary users and technicians. But where did, why and what is the purpose of this site?

Click here to read!

Siga o Dicas em Geral no Google+

Video of the week