Sistema de votação online em PHP e MySQL
Autor: Divulgador | Publicado: 2013-04-24T09:33:00-07:00




Sistema de votação online em PHP e MySQL


Instalação de Scripts,&nbsp;Tutoriais MySQL,&nbsp;Tutoriais PHP







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


1. Criando o&nbsp;arquivo&nbsp;para votar:

Cria um ficheiro&nbsp;html&nbsp;e escreve a tua pergunta e respostas como&nbsp;no exemplo seguinte:




01&lt;HTML&gt;




02&lt;HEAD&gt;




03&lt;TITLE&gt;votação&lt;/TITLE&gt;




04&lt;/HEAD&gt;




05&lt;BODY&gt;




06&lt;FONT SIZE="3"&gt;Qual a sua base de dados preferida?&lt;/FONT&gt;&lt;BR&gt;




07&lt;FORM NAME="votação"&nbsp;ACTION="votacao.php"&nbsp;METHOD="get"&gt;




08&lt;INPUT TYPE="radio"&nbsp;NAME="escolha"&nbsp;VALUE="1"&gt;MySQL&lt;BR&gt;




09&lt;INPUT TYPE="radio"&nbsp;NAME="escolha"&nbsp;VALUE="2"&gt;msSQL&lt;BR&gt;




10&lt;INPUT TYPE="radio"&nbsp;NAME="escolha"&nbsp;VALUE="3"&gt;PostgreSQL&lt;BR&gt;




11&lt;INPUT TYPE="radio"&nbsp;NAME="escolha"&nbsp;VALUE="4"&gt;ODBC&lt;BR&gt;




12&lt;/FORM&gt;




13&lt;/BODY&gt;




14&lt;/HTML&gt;





2. Criando a&nbsp;tabela&nbsp;no MySQL:

Na&nbsp;shell&nbsp;do&nbsp;MySQL&nbsp;digite após selecionar uma Base de Dados escreva o seguinte código:




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





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




1INSERT INTO votacao (descricao,votos) VALUES ("MySQL","0");




2INSERT INTO votacao (descricao,votos) VALUES ("msSQL","0");




3INSERT INTO votacao (descricao,votos) VALUES ("PostgreSQL","0");




4INSERT INTO votacao (descricao,votos) VALUES ("ODBC","0");





Repara que só são adicionadas a descrição e os votos, mas não o ID, justamenteporque quando a&nbsp;tabela&nbsp;foi criada foi designada a função de AUTO_INCREMENT, o que fará&nbsp;com&nbsp;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:



view source






01&lt;?




02&nbsp;




03if&nbsp;($escolha&nbsp;!=&nbsp;"") {&nbsp;// Verifica se foi inserido um voto e prossegue em &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;frente&lt;/label&gt;&lt;/span&gt; no caso de verdade




04&nbsp;




05// Variáveis a serem alteradas




06&nbsp;




07$mysql_host&nbsp;=&nbsp;"";&nbsp;// local do &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;servidor&lt;/label&gt;&lt;/span&gt; &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;MySQL&lt;/label&gt;&lt;/span&gt;




08$mysql_user&nbsp;=&nbsp;"":&nbsp;// utilizador do &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;MySQL&lt;/label&gt;&lt;/span&gt;




09$mysql_pass&nbsp;=&nbsp;"";&nbsp;// senha do utilizador do &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;MySQL&lt;/label&gt;&lt;/span&gt;




10$mysql_dtbs&nbsp;=&nbsp;"";&nbsp;// base de dados onde a &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;tabela&lt;/label&gt;&lt;/span&gt; foi criada




11&nbsp;




12$num_resp&nbsp;=&nbsp;"";&nbsp;// &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;número&lt;/label&gt;&lt;/span&gt; de opções na tua votação




13$pergunta&nbsp;=&nbsp;"";&nbsp;// pergunta da votação




14&nbsp;




15// Nada mais a ser alterado




16&nbsp;




17$mysql_conx&nbsp;= mysql_connect($mysql_host,$mysql_user,$mysql_pass);




18// ligação ao &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;MySQL&lt;/label&gt;&lt;/span&gt;




19&nbsp;




20$radio&nbsp;=&nbsp;$num_resp&nbsp;+ 1;




21// para uso posterior




22&nbsp;




23mysql_select_db($mysql_dtbs);




24// seleciona a base de dados




25&nbsp;




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




27&nbsp;




28$query_upd&nbsp;=&nbsp;"SELECT * FROM votacao WHERE id=$escolha";




29$resul_upd&nbsp;= mysql_query($query_upd);




30// aqui o PHP selecciona apenas os registos que coincidem &lt;span&gt;&lt;label style="background: none repeat scroll 0 0 #D1E7EF;border: 1px solid #D1E7EF;border-radius: 9px 9px 9px 9px;box-shadow: 1px 1px 0 #FFFFFF inset; padding: 0 3px;cursor:pointer;z-index:0; display: inline !important" datatype="t"&gt;com&lt;/label&gt;&lt;/span&gt; a escolha, neste




31// caso so uma opção




32&nbsp;




33$obj_upd&nbsp;= mysql_fetch_object($resul_upd);




34// o comando mysql_fetch_object() separa os resultados de uma query por colunas




35// neste caso, $obj_upd -&gt; descrição da opção que o utilizador votou




36&nbsp;




37$vot_upd&nbsp;=&nbsp;$obj_upd-&gt;votos;




38$vot_upd++;




39// separa só os votos e adicinona mais um voto




40&nbsp;




41$upd_upd&nbsp;=&nbsp;"UPDATE votacao SET votos=$vot_upd WHERE id=$escolha";




42mysql_query($upd_upd);




43// atualizou a base de dados




44&nbsp;




45// Agora o PHP fará a pesquisa na base de dados e retornará as opções, seus




46// respectivos votos, total de votos e a sua escolha.




47&nbsp;




48echo&nbsp;"&lt;H3&gt;"&nbsp;.&nbsp;$pergunta&nbsp;.&nbsp;"&lt;/H3&gt;";




49&nbsp;




50for($i=1;$i&lt;$radio;$i++) {




51&nbsp;




52$query[$i] =&nbsp;"SELECT * FROM votação WHERE id=$i";




53$resul[$i] = mysql_query($query[$i]);




54$objet[$i] = mysql_fetch_object($resul[$i]);




55&nbsp;




56echo&nbsp;"&lt;FONT FACE=\"Verdana\" SIZE=\"1\"&gt;&lt;B&gt;"&nbsp;.&nbsp;$objet[$i]-&gt;opcao .&nbsp;"&lt;/B&gt; "&nbsp;.&nbsp;$objet[$i]-&gt;descricao .&nbsp;"&lt;B&gt; "&nbsp;.&nbsp;$objet[$i]-&gt;votos .&nbsp;"&lt;/B&gt;&lt;BR&gt;";




57&nbsp;




58$tot_vt&nbsp;+=&nbsp;$objet[$i]-&gt;votos;




59&nbsp;




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




61&nbsp;




62}




63echo&nbsp;"&lt;FONT SIZE=\"1\"&gt;&lt;B&gt;Total de votos:&lt;/B&gt;"&nbsp;.&nbsp;$tot_vt&nbsp;.&nbsp;"&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;B&gt;Sua Escolha&lt;/B&gt;:"&nbsp;.&nbsp;$escolha&nbsp;.&nbsp;"&lt;/FONT&gt;&lt;/FONT&gt;";




64}




65?&gt;





E aqui termina o tutorial de como fazer uma votação,&nbsp;claro, que podes e deves modificar o layout da votação, adaptar para que seja permitido apenas um voto por dia (usando cookies), etc, etc, etc…