Ir para conteúdo
Fórum Script Brasil
  • 0

Enquete Retorno


Carlos Rocha

Pergunta

Ola pessoal.

Estou fazendo um enquete co php + mysql e já estou na fase final.

Bom, no banco eu gravo duas coisas: a id da enquete e a escoha feita pelo internauta.

Dai agora, tem la na tabela.

id_enquete = 1
escoha  = A 

id_enquete = 1
escoha  = B 

id_enquete = 1
escoha  = A 

id_enquete = 1
escoha  = C
Eu agora preciso apurar quantas vezes a opção a foi votada e dar retorno assim:> A opção A foi votada tantas vezes> A opção B foi votada tantas vezes> A opção C foi votada tantas vezes> Como faz isso. Eis até onde fui:
<?php 
include("conecta.php"); 
if ($acao=="votar"){
$voto = mysql_query("insert into enquetes_escolhas (id_enquete,escolha) values ('$id_enquete','$escolha')");
if (!$voto) {echo "Teu voto não foi computado<br>Tente de novo<br><a href='java script:closewindow()'>Fechar Janela</a>"; }
else {
$conta = mysql_query("select COUNT(escolha) from enquetes_escolhas where id_enquete=$id_enquete");
$busca = mysql_query("select escolha from enquetes_escolhas where id_enquete=$id_enquete");
while(list($escolha) = mysql_fetch_row($busca)){
echo $escolha;
echo "<br>";
                                               }
     }
                   }
?>

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Cara, em vez de tudo isso, faz só assim:

$consulta = mysql_query("SELECT * FROM `enquetes_escolhas` WHERE `escolha` = 'A'");
$Conta_A = mysql_num_rows($consulta); // Esse é o resultado das votações no A

É só fazer isso pra cada opção.

Você pode automatizar isso jogando tudo em um while, se a quantidade de opção for salva no banco de dados também.

Link para o comentário
Compartilhar em outros sites

  • 0

sabe, n verdade tenho uma adaminstração que cadastra as enquetes e não da para saber quantas opções e quais são elas sem conmsultar o bnanco.

isso eu já fiz.

o negocio agora é verifica quais as opções tem no banmco para a id da enquete tal e quatas vezes cada uma se repete.

Link para o comentário
Compartilhar em outros sites

  • 0

Você precisará acertar os nomes de tabela e tal, mas pode fazer algo assim:

$consulta0 = mysql_query("SELECT * FROM `opcoes`");
if ($linha0 = mysql_fetch_array($consulta0)){
    do {
        $ID_Opcao = $linha0["campo_com_o_id_da_opcao"];
        $Nome_Opcao = $linha0["campo_com_o_nome_da_opcao"];
        $consulta1 = mysql_query("SELECT * FROM `enquetes_escolhas` WHERE `escolha` = '$ID_Opcao'");
        $Conta = mysql_num_rows($consulta1);
        echo "A op&ccedil;&atilde;o $Nome_Opcao teve um total de $Conta votos<br />";
        }
    while($linha0 = mysql_fetch_array($consulta0));
    }

Link para o comentário
Compartilhar em outros sites

  • 0

Poxa a ideia é por ai mas ainda não é isso.

na reladade tenho 2 tabelas

enquetes e enquetes_opcoes;

CREATE TABLE IF NOT EXISTS enquetes (
  id int(4) unsigned NOT NULL auto_increment,
  pergunta varchar(255) NOT NULL DEFAULT '' ,
  opcoes varchar(255) NOT NULL DEFAULT '' ,
  data date NOT NULL DEFAULT '0000-00-00' ,
  PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS enquetes_escolhas (
  id_enquete int(4) NOT NULL DEFAULT '0' ,
  escolha varchar(255) NOT NULL DEFAULT '' 
);
o campo opcoes da tabela de enquetes, são as opções da enquete co os valores separados por um @ tipo "opçãoa@opçãob@opçãoc@opçãod" na hora de exibir essas opçoes no form para o internauta votar eu faço um split e separo as opções em forma radio butons. Bom. quando o internauta vota, vai para a tabela enquetes_escolhas, o id da enquete que esta na tabela de enquetes e a opção escolhida. agora eu faço a sql:
$busca = mysql_query("select escolha from enquetes_escolhas where id_enquete=$id_enquete");
$conta = mysql_num_rows($busca);

para saber quantas e quais opções voltaram para a pergunta de id tal.

até ai ta tranquilo.l

Mas agora preciso contar, quantas vezes a opçãoa foi votada para a enquete de id x e assim por diante.;

O probnlema é que terei que saber os nomes das opções dinamicamente.;

Link para o comentário
Compartilhar em outros sites

  • 0

Que complicado.

Com mais uma tabela aí, que seria usada para salvar as opções, ficaria mais simples colocar a enquete para funcionar.

Bom, você seguirá o mesmo conceito que eu te passei, só precisará mudar suas consultas.

Consulte primeiro as alternativas, faça o split e jogue tudo em uma array.

Depois verifique as respostas e conte-as, usando parte do script que eu te passei, pra cada item da array.

Link para o comentário
Compartilhar em outros sites

  • 0

Ta

só mnais uma luz.

com,o faço para pegar Criar uma matriz a partir de um while?

Tipo

$busca = mysql_query("select escolha from enquetes_escolhas where id_enquete=$id_enquete");
$conta = mysql_num_rows($busca);

while(list($escolha) = mysql_fetch_row($busca)) {
echo $escolha; //aquii imprim,o as escolha
                                                                       }
agora preciso criar a array com as escolhas tipo:
array = "'escolhaa','escolhaa','escolhaa','escolhab','escolhaa','escolhab','escolhaa','escolhaa','escolhab'";

Link para o comentário
Compartilhar em outros sites

  • 0

To tentando fazer assim mas to apanhando.

<?php 
include("conecta.php"); 
if ($acao=="votar"){
$voto = mysql_query("insert into enquetes_escolhas (id_enquete,escolha) values ('$id_enquete','$escolha')");
if (!$voto) {echo "Teu voto não foi computado<br>Tente de novo<br><a href='java script:closewindow()'>Fechar Janela</a>"; }
else {
//$conta = mysql_query("select COUNT(escolha) from enquetes_escolhas where id_enquete=$id_enquete");
$busca = mysql_query("select escolha from enquetes_escolhas where id_enquete=$id_enquete");
$conta = mysql_num_rows($busca);
while(list($dados) = mysql_fetch_row($busca)) {
$array = "'".$dados."',";
$teste= $array;
$teste1 = substr($teste, 0, -1); 
echo $teste1;
}

     }
                   }
?>
To apanhando muto. Como vou fazer para continuar? olha como esta saindo
'Correta, pois é assim mesmo''Correta, pois é assim mesmo''Errada, não concordo''Errada, não concordo''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves''Talves'

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...