Ir para conteúdo

POWERED BY:

Arquivado

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

Igor Pereira

[Resolvido] Enquete nao mostra result ao clicar (ver results)

Recommended Posts

Pessoal,

a enquete está funcionando, mostrar os result qndo já foi votado está funcionando, porem se o usuario ainda nao votou e só quer ver os resultados clicando no link "ver resultados". os resultados apecere 0. abaixo o codigo:

 

<?php
$id_q = $_GET['id_q']; // id passado atravez do link


if(!$_POST['poll'] || !$_POST['pollid']){
// seleciona aquestao
$query=mysql_query("SELECT id, ques FROM questions WHERE id = '$id_q'");
while($row=mysql_fetch_assoc($query)){
	//mostra a questao
	echo "<p class=\"pollques\" ><h1>".$row['ques']."</h1></p>";
	$poll_id=$row['id'];
} // fim while

// se result = 1 ou cookie yes, mostras os resultados: MEU PROBLEMA TA AQUI. (COOKIE = yes) está funcionando, porem se RESULT = 1 nao pega os resultados. 
if($_GET["result"]==1 || $_COOKIE["voted".$poll_id]=='yes' ){
	// funcao para mostrar resultados
	showresults($poll_id);
	exit;
} // fim if result ou voto
else{
//mostrar opcoes

$query=mysql_query("SELECT id, value FROM options WHERE ques_id=$poll_id");
if(mysql_num_rows($query)){
	echo '<div id="formcontainer" ><form method="post" id="pollform" action="'.$_SERVER['PHP_SELF'].'" >';
	echo '<input type="hidden" name="pollid" value="'.$poll_id.'" />';

	while($row=mysql_fetch_assoc($query)){
		echo '<p><input type="radio" name="poll" value="'.$row['id'].'" id="option-'.$row['id'].'" /> 
		<label for="option-'.$row['id'].'" >'.$row['value'].'</label></p>';
	} // fim while
		echo '<p><input type="submit"  value="Vote aqui"  /></p></form>';
		// abaixo o link com o parametro RESULT, ( que nao esta mostrando os resultados ).
		echo '<p><a href="'.$_SERVER['PHP_SELF'].'?result=1" id="viewresult">Ver resultados</a></p></div>';

	} // fim query
} // fim  else
} //fim if
else{
if($_COOKIE["voted".$_POST['pollid']]!='yes'){

	//check opcao selecionada
	$query=mysql_query("SELECT * FROM options WHERE id='".$_POST["poll"]."'");
	if(mysql_num_rows($query)){
		$query="INSERT INTO votes(option_id, voted_on, ip) VALUES('".$_POST["poll"]."', '".date('Y-m-d H:i:s')."', '".$_SERVER['REMOTE_ADDR']."')";
		if(mysql_query($query))
		{
			//adicionado o voto..
			setcookie("voted".$_POST['pollid'], 'yes', time()+86400*99999);				
		}
		else
			echo "ERRO: ".mysql_error();
	}
}
showresults(intval($_POST['pollid']));
}
function showresults($poll_id){
global $conn;
$query=mysql_query("SELECT COUNT(*) as totalvotes FROM votes WHERE option_id IN(SELECT id FROM options WHERE ques_id='$poll_id')");
while($row=mysql_fetch_assoc($query))
	$total=$row['totalvotes'];
$query=mysql_query("SELECT options.id, options.value, COUNT(*) as votes FROM votes, options WHERE votes.option_id=options.id AND votes.option_id IN(SELECT id FROM options WHERE ques_id='$poll_id') GROUP BY votes.option_id");
while($row=mysql_fetch_assoc($query)){
	$percent=round(($row['votes']*100)/$total);
	echo '<div class="option" ><p>'.$row['value'].' (<em>'.$percent.'%</em>)</p>';
	echo '<div class="bar ';
	if($_POST['poll']==$row['id']) echo ' yourvote';
	echo '" style="width: '.$percent.'%; " ></div></div>';
}
echo '<p>Total Votos: '.$total.'</p>';
exit;
} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema do result. Agora estou com o classico erro

 

Warning: Cannot modify header information - headers already sent by (output started at /home/asfab/public_html/enquete_view.php:9) in /home/asfab/public_html/enquete_view.php on line 68

 setcookie("voted".$_POST['pollid'], 'yes', time()+86400*99999);                         

sei que o setcookie deve ser setado antes de qq coisa mas offline funciona normalmente.

 

os arquivos estao salvos em (SEM BOM)

 

any sugestions?

 

moderas podem fechar o tópico.

 

resolvi usando as diretivas ob_start() e ob_end_flush()

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.