Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webpaulinho

enquete em Flash e PHP

Recommended Posts

Topico Enquete + PHP

 

Fiz a enquete do site pontoflash, a do link abaixo, porém não está funfando, aparece um texto "NaN" após votação, alguém sabe o que pode ser??

Segue código das actions, dos PHP e do link da mesma no Pontoflash e da minha que não está funcionando, se alguém conseguir me ajudar ficarei muito grato.

 

Enquete do PontoFlash

Enquete no meu site

 

connect.php

<?php

/* Arquivo que fará a conexão com o seu banco de dados */

$DBhost = "localhost";	// nome do host
$DBuser = "juffacom_pauloq";		// nome do usuário		
$DBpass = "xxxxxx";		// senha do banco de dados
$DBName = "juffacom_enquete";	// nome da base de dados 

// Nome da tabela que estará usando
$table = "enquete";		// está de acordo com o sql de criação da table...
						// se alterar aqui, altere o nome da tabela tb....

// Conexão e seleção da base de dados.... (não alterar)
$Connect = mysql_connect($DBhost,$DBuser,$DBpass);
mysql_select_db($DBName, $Connect);

?>

vote.php

<?php
require('connect.php');

$escolha = $HTTP_GET_VARS[escolha];
$coluna = "opt".$escolha;

// Checa e cria um cookie para evitar que a pessoa vote novamente....

$varName = "enquete";
$CookieCheck = $HTTP_COOKIE_VARS[$varName];

if ($CookieCheck != "") {
	// Uma mensagem que será enviada ao Flash dizendo que a pessoa já votou.....
	$MessageToUser = "O seu voto já foi computado";

} else {
	$MessageToUser = "Obrigado por ter votado!";
	// Cria o Cookie
	setcookie ("enquete", "Voted", time()+30240000, "/");

	// Só adiciona os valores na tabela se a pessoa não tiver votado....
	$VoteNow = mysql_query("UPDATE $table SET $coluna = $coluna + 1", $Connect);
}
	// REcupera os novos valores da tabela após votação.....
	$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect);

	// Coloca os valores em uma array....
	$updatedVotes = mysql_fetch_row($SelectResults);

// Envia para o Flash os valores do banco de dados......
print "&OptNew1=$updatedVotes[0]&OptNew2=$updatedVotes[1]&OptNew3=$updatedVotes[2]&OptNew4=$updatedVotes[3]&info=<b>$MessageToUser</b>";

?>

results.php

<?php
require('connect.php');

$escolha = $HTTP_GET_VARS[escolha];
$coluna = "opt".$escolha;

// Check and Set Cookie
// If the cookie has already been set - The user has already voted and their new vote will not count.
// We use the PollID plus the word 'poll' to identify the cookie.
// You may want to check your browsers cache and review the cookie that is set when your using it.

  

	$MessageToUser = "Resultados....";

	// Select Updated Current Values from Database so we can send them back to Flash.
	$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect);

	// Assign results to an array.
	$updatedVotes = mysql_fetch_row($SelectResults);

// Print out results to flash.
print "&OptNew1=$updatedVotes[0]&OptNew2=$updatedVotes[1]&OptNew3=$updatedVotes[2]&OptNew4=$updatedVotes[3]&info=<b>$MessageToUser</b>";
  
?>

No Flash ficou desta forma, as actions.

votou = 0;  // variavel de controle (não mudar)
info.text = "";
valor = 0;  // assume o valor do click 
clicou = 0;  // outra variavel de controle (nao mudar tb...)

// Valores das opções de escolha......
// Só tomar o cuidado de não colocar algo muito grande, senão 
// podem coincidir com os campos dos resultados.
opcoes.box1.texto.text = "Excelente";
opcoes.box2.texto.text = "Ótimo";
opcoes.box3.texto.text = "Bom";
opcoes.box4.texto.text = "Ruim";

// Algumas funcões criadas para facilitar a nossa vida....
// A função "checa" controla o mecanismo do Radio Button, 
// para que somente uma opção possa estar ativa de cada vez...
// desativando a opção que estava ativada anteriormente....

function checa() {
	opcoes["box"+valor].gotoAndPlay("desativa");
}

// Essa função, carrega os valores do banco de dados 
// em um objeto do Load Vars, com o nome "objload",
// sendo assim vms acessar todos os valores com algo
// do tipo: objload.(nome da variavel enviada pelo php)

function resultados() {
		objload = new LoadVars();
	// Troque a URL por onde está o arquivo results.php e o caminho
	objload.load("http://www.juffa.com.br/results.php");

	// Quando todos os valores forem carregados, vai para o 
	// frame 10.....
	objload.onLoad = function() {
		gotoAndPlay(10);

	};
}

if (votou == 0) {
	info.text = "";
} else { info.text= "Obrigado por ter votado!"
}

// Transformamos em número cada variável enviada pelo PHP (OptNew1...OptNew2...etc..)
objload.OptNew1 = Number(objload.OptNew1);
objload.OptNew2 = Number(objload.OptNew2);
objload.OptNew3 = Number(objload.OptNew3);
objload.OptNew4 = Number(objload.OptNew4);

// COloca os valores vindos do PHP (objload.OptNew1) nas variáveis
// criadas no flash (mostra_resultados.opt1)
mostra_resultados.opt1 = objload.OptNew1;
mostra_resultados.opt2 = objload.OptNew2;
mostra_resultados.opt3 = objload.OptNew3;
mostra_resultados.opt4 = objload.OptNew4;
total = objload.OptNew1 + objload.OptNew2 + objload.OptNew3 + objload.OptNew4;

// Cria o valor de porcentagem para cada opção....
percent1=Math.round(objload.OptNew1*100/total);
percent2=Math.round(objload.OptNew2*100/total);
percent3=Math.round(objload.OptNew3*100/total);
percent4=Math.round(objload.OptNew4*100/total);

// Coloca o valor da porcentagem em cada campo de texto dinâmico (opt11..opt22...)
mostra_resultados.opt11 = percent1+"%";
mostra_resultados.opt22 = percent2+"%";
mostra_resultados.opt33 = percent3+"%";
mostra_resultados.opt44 = percent4+"%";

Disseram para mim que podia ser problema com o código PHP, pois a minha página results.php http://www.juffa.com.br/results.php esta dando este erro:

 

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/juffacom/public_html/results.php on line 20

&OptNew1=&OptNew2=&OptNew3=&OptNew4=&info=Resultados....

No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo

o OptNew[1]

é a primeira variável ?

 

tente colocar um interrogação nele.

 

EX:

 

?OptNew1=$updatedVotes[0]&OptNew2=$updatedVotes[1]&OptNew3=$updatedVotes[2]&OptNew4=$updatedVotes[3]&info=<b>$MessageToUser</b>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK

 

o Erro se encontra aqui

$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect);

	// Assign results to an array.
	$updatedVotes = mysql_fetch_row($SelectResults);

Faça assim..

$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect) or die ("Erro na Query");
echo $table;
exit;

	// Assign results to an array.
	$updatedVotes = mysql_fetch_row($SelectResults);

 

As alterações vão fazer o seguinte.

seu Script irá parar no momento da query..

para verificar se a query está funcionando colocamos o 'Or Die' este por sua vez.. se a query der errado ele mostra o erro.

 

Depois um 'Echo $table' para mostrar o valor da variável $table.

 

Verifique se a tabela que está em $table é a mesma onde os valores de opt1 opt2 ... estão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o que voê disse e apareceu Erro na Query, só!!!!

Bom não manjo praticamente nada de banco, mas essa é minha tabela, acho que era sobre isso que você tava querendo dizer.

 

CREATE TABLE `enquete` (

`enquete_id` int(11) NOT NULL auto_increment,

`opt1` int(11) default '0',

`opt2` int(11) default '0',

`opt3` int(11) default '0',

`opt4` int(11) default '0',

PRIMARY KEY (`enquete_id`)

) TYPE=MyISAM AUTO_INCREMENT=3 ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece que, a variável $tabela não tem valor nenhum..

 

Coloque esta Linha antes da query.

if(!$tabela)$tabela= "enquete";

nesta linha acontece.

O IF verifica se existe a variável $tabela.. se ela não existir.. ele cria a $tabela e ela tem o valor de enquete

 

 

E volte a linha

 

$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect) or die ("Erro na Query");
echo $table;
exit;

PARA

 

$SelectResults = mysql_query("SELECT opt1, opt2, opt3, opt4 FROM $table", $Connect) or die ("Erro na Query");
Deixe o Erro na Query.. até você terminar a etapa de testes.. depois tire.. pois o cliente não precisa saber que o erro é na query.. se não nego começa a acusar não só você como Host/velocidade de internet/etc.

As vezes omitir é melhor do que ouvir m***** depois..rsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei se teve haver mais, removi o usuario da tabela e criei de novo e quando fui acessar a pagina results.php apareceu isso:

 

&OptNew1=&OptNew2=&OptNew3=&OptNew4=&info=Resultados....;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não me engano, as variáveis devem ser separadas com quebra de linha.

Olhe o que acontece aqui:

&OptNew1=&OptNew2
Qual o valor de OptNew1 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E é isso o esperado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.