Jump to content

sistemea de votaçoes


Devexz
 Share

Recommended Posts

php + mysql?

leia este artigo


Este artigo vai te ensinar a fazer uma votação em PHP, usando MySQL. Esta votação será de apenas uma escolha.

1. Criando o arquivo para votar

Crie um ficheiro HTML e escreva a pergunta e as 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, 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 para usar. Para continuar, da mesma forma que criamos 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");

Repare que 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

Crie um ficheiro chamado votacao.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 atualizar 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 . " <B>Sua Escolha</B>:" . $escolha . "</FONT></FONT>";
}
?>

E aqui termina o artigo. Claro que você poderá alterar o layout da votação, adaptar para que seja permitido apenas um voto por dia (usando cookies) etc...

Nao adicionei creditos porque achei um emuitas paginas este artigo 😄 ,esperao ter ajudado.

caso nao seja isso eu arranjo outro modo feito por mim

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.