Ir para conteúdo

POWERED BY:

Arquivado

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

grldesign

Sistema de Enquete

Recommended Posts

Elaborei um sisteminha de enquete meio arcaico. Só que tá retornando erro quando peço para contar as ocorrências de cada opção da enquete na tabela de votos. Coloco abaixo o código para alguém que possa me dar uma ajuda.

 

formulario.php

<? include('config/config.inc.php');    	 $busca_en = mysql_query("SELECT * FROM ctg_enquete_dados");    	 $conta_en = mysql_num_rows($busca_en);            if($conta_en != 0) {               	 while($campo = mysql_fetch_array($busca_en)) {        $id  = $campo[id];        $perg	= $campo[pergunta];        $op1	= $campo[opcao1];        $op2	= $campo[opcao2];        $op3	= $campo[opcao3];        $op4	= $campo[opcao4];        $op5	= $campo[opcao5];        $autor	= $campo[autor];        $email	= $campo[email];     	 }     	 echo ("<form method='post' action='index.php?secao=votar'>");     	 echo ("<b>$perg</b><br><br>");     	      	 if(($op1 != "") || ($op2 != "") || ($op3 != "") || ($op4 != "") || ($op5 != "")) {        echo ("<input type='radio' name='opcao' value='$op1'>$op1");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op2'>$op2");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op3'>$op3");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op4'>$op4");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op5'>$op5");        echo ("<br>");     	 }     	 elseif(($op1 != "") || ($op2 != "") || ($op3 != "") || ($op4 != "") || ($op5 == "")) {        echo ("<input type='radio' name='opcao' value='$op1'>$op1");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op2'>$op2");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op3'>$op3");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op4'>$op4");        echo ("<br>");     	 }     	 elseif(($op1 != "") || ($op2 != "") || ($op3 != "") || ($op4 == "") || ($op5 == "")) {        echo ("<input type='radio' name='opcao' value='$op1'>$op1");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op2'>$op2");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op3'>$op3");        echo ("<br>");     	 }     	 elseif(($op1 != "") || ($op2 != "") || ($op3 = "") || ($op4 == "") || ($op5 == "")) {        echo ("<input type='radio' name='opcao' value='$op1'>$op1");        echo ("<br>");        echo ("<input type='radio' name='opcao' value='$op2'>$op2");        echo ("<br>");	     	 }        echo ("<br><input type='submit'class='BotaoEnquete' name='votar' value='Votar'>  <a href='index.php?secao=enquete&id=$id' class='internos'>Resultado Parcial</a></form>");        echo ("");	      }      else {     	 echo "Em Manutenção! Aguarde!";      }   	 mysql_close();      ?>
enquete2.php

<? 	require('config/config.inc.php');		$opcao = $HTTP_POST_VARS[opcao];		$busca_en = mysql_query("SELECT * FROM ctg_enquete_dados ORDER BY id"); 	$conta_en = mysql_num_rows($busca_en);           	 while($campo = mysql_fetch_array($busca_en)) { 	 $id  = $campo[id]; 	 $pergunta = $campo[pergunta]; 	 $opcao1 = $campo[opcao1]; 	 $opcao2 = $campo[opcao2]; 	 $opcao3 = $campo[opcao3]; 	 $opcao4 = $campo[opcao4]; 	 $opcao5 = $campo[opcao5]; 	 $autor = $campo[autor]; 	 $email = $campo[email]; 	 $data = $campo[data]; 	 $hora = $campo[hora];    }		$contador = 1;	$grava = mysql_query("INSERT INTO ctg_enquete_votos (id, id_enquete, voto, contador) VALUES('', '$id', '$opcao', '$contador')"); 	   if($grava) {   	 $busca_enq = mysql_query("SELECT * FROM ctg_enquete_votos WHERE id_enquete='$id'");  	 $conta_enq = mysql_num_rows($busca_enq); 	 $total = $conta_enq; 	 while($campo = mysql_fetch_array($busca_enq)) {    $id2 	 = $campo[id];    $id_enquete  = $campo[id_enquete];    $voto    = $campo[voto];    $contador 	 = $campo[contador];   	 } 	     echo ("Seu voto foi Aceito. Confira o andamento da votaçáo abaixo:<br><br>");	   	 $busca_1 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao1='$opcao1'");    	 $conta_1 = mysql_num_rows($busca_1);      if($conta_1 != 0) {     	 $v1 = $conta_1*100/$total;      }      else {       $v1 = "0";      }   	    	 $busca_2 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao2='$opcao2'");    	 $conta_2 = mysql_num_rows($busca_2);      if($conta_2 != 0) {     	 $v2 = $conta_2*100/$total;      }      else {       $v2 = "0";      }   	    	 $busca_3 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao3='$opcao3'");    	 $conta_3 = mysql_num_rows($busca_3);      if($conta_3 != 0) {     	 $v3 = $conta_3*100/$total;      }      else {       $v3 = "0";      }   	    	 $busca_4 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao4='$opcao4'");    	 $conta_4 = mysql_num_rows($busca_4);      if($conta_4 != 0) {     	 $v4 = $conta_4*100/$total;      }      else {       $v4 = "0";      }   	 $busca_5 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao5='$opcao5'");    	 $conta_5 = mysql_num_rows($busca_5);      if($conta_5 != 0) {     	 $v5 = $conta_5*100/$total;      }      else {       $v5 = "0";      }   	    	 echo ("<strong>$pergunta</strong><br><br>");   	 echo ("<strong>$opcao1</strong>  $v1"."%"."<br>");   	 echo ("<strong>$opcao2</strong>  $v2"."%"."<br>");   	 echo ("<strong>$opcao3</strong>  $v3"."%"."<br>");   	 echo ("<strong>$opcao4</strong>  $v4"."%"."<br>");   	 echo ("<strong>$opcao5</strong>  $v5"."%"."<br>"); 	 } 	 else {    echo ("Erro durante gravação do Voto. Contate o Administrador."); 	 } 	 mysql_close();   	 	?>
No action do formulario está uma query string, mas o arquivo alvo dela é o enquete2.php. Se alguém puder me ajudar fico grato.

 

Um abraço. Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da erro de sql nas linhas grifadas abaixo, do arquivo enquete2.php.

E por isso não busca no banco os votos e não faz a porcentagem.

 

$busca_1 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao1='$opcao1'");

    $conta_1 = mysql_num_rows($busca_1);

    if($conta_1 != 0) {

      $v1 = $conta_1*100/$total;

    }

    else {

      $v1 = "0";

    }

   

    $busca_2 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao2='$opcao2'");

    $conta_2 = mysql_num_rows($busca_2);

    if($conta_2 != 0) {

      $v2 = $conta_2*100/$total;

    }

    else {

      $v2 = "0";

    }

   

    $busca_3 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao3='$opcao3'");

    $conta_3 = mysql_num_rows($busca_3);

    if($conta_3 != 0) {

      $v3 = $conta_3*100/$total;

    }

    else {

      $v3 = "0";

    }

   

    $busca_4 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao4='$opcao4'");

    $conta_4 = mysql_num_rows($busca_4);

    if($conta_4 != 0) {

      $v4 = $conta_4*100/$total;

    }

    else {

      $v4 = "0";

    }

    $busca_5 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao5='$opcao5'");

    $conta_5 = mysql_num_rows($busca_5);

    if($conta_5 != 0) {

      $v5 = $conta_5*100/$total;

    }

    else {

      $v5 = "0";

    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isso:

$busca_1 = mysql_query("SELECT * FROM ctg_enquete_votos WHERE opcao1='$opcao1'", $sua_conexao); $conta_1 = mysql_num_rows($busca_1);
Acho que só está faltando o $sua_conexao que resultou de mysql_connect().

 

Tenta aí. Qq coisa posta novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tentei ainda, mas penso o seguinte: Uma conexão foi aberta, ela fica ativa para quantas querys eu deseje utilizar certo?Não vejo nesse caso a fonte do problema, mas testarei da mesma forma.Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

...Uma conexão foi aberta, ela fica ativa para quantas querys eu deseje utilizar certo?Não vejo nesse caso a fonte do problema, mas testarei da mesma forma.Valeu.

Tem razão......mas e se você tiver conexões diferentes ? Daí terá de "referenciar" a conexão que estará usando.ps.: você pode achar que nunca usará duas conexões, mas isto é perfeitamente possível.ps II: peguei o que passei de exemplos deste site, só para referência, mas nunca usei da forma que você fez, talvez funcione mesmo.

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.