Ir para conteúdo


[Tutorial] Sistema de votaçao online em PHP e MYSQL


3 respostas neste tópico

#1    egonfelipealves

egonfelipealves
  • Muito Noob

  • 132 posts

Postado 04 julho 2009 - 00:27

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



Creditos:Egonfelipe
Creditos:truquesedicas.com

Ausente sim,Offline Nunca!!!!!!!!
Skype:Egon_alves
Msn:[email protected] =D
@egonfelipe
Ninguém vai escutar o que você disser até cometer um erro
[img]http://img411.imageshack.us/img411/8256/10zn4.png[/img]

#2    patricktb

patricktb
  • Apedeuta

  • 1.747 posts

Postado 04 julho 2009 - 13:27

Legal Mais sugiro forma mais simples e em FLASH >

Por favor, acesse sua conta ou cadastre-se para ver este conteúdo oculto.


Servidor Lineage II Sem Custom: Clique aqui


#3    marcela1999

marcela1999
  • Muito Noob

  • 57 posts

Postado 14 março 2011 - 17:36

ow eu quero a tabela pra abaxa e coloca no site ja mano ve ai fazendo favor

#4    Leonardo Alves ツ

Leonardo Alves ツ
  • leonardo.alves.4i20

  • 5.170 posts

Postado 15 março 2011 - 00:20

vo testar. vlw




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 usuários anônimos

© L2jBrasil - Todos os direitos reservados
NCsoft©, the interlocking NC logo, Lineage© II, and all associated logos and designs are trademarks or registered trademarks or service marks of NCsoft Corp.
All rights reserved and other trademarks are the property of their respective owners.