Ir para conteúdo

POWERED BY:

Arquivado

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

RenanPA

SUM() Enquete

Recommended Posts

PESSOAL NÃO ESTOU CONSEGUINDO SOMAR E EXIBIR CORRETAMENTE OS VOTOS DA ENQUETE

 

VEJAM O CÓDIGO ABAIXO

       <?php

require ("../king/conexao.php");

$sql2 = "SELECT sum(votos) as total, idQuest, questao FROM questoes GROUP BY idQuest";
$resultado2 = mysql_query($sql2) or die(mysql_error());
while  ($sql2 = mysql_fetch_array ($resultado2) ) {

$idQuest = $sql2['idQuest'];
$votos = $sql2['votos'];
$questao = $sql2['questao'];
$total = $sql2['total'];


// Porcentagem


$porcentagem = $votos / $total * 100;

echo "


     <tr>
       <td width='124'>$questao</td>
       <td width='170'>$porcentagem%</td>
     </tr>
  Quantidade de votos: <?php echo $total ?>
  ";
  	}

?>]

 

EU SÓ QUERO QUE CONTE O CAMPO VOTOS DA TABELA QUESTAO

 

NÃO EXIBE NADA NO RESULTADO JA TENTEI DE VÁRIAS FORMAS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo assim,

 

a porcentagem de votos ficam todos com 100%

 

e a quantidade de votos 3

 


require ("../king/conexao.php");

$sql2 = "SELECT idQuest, questao, votos, sum(votos) as total FROM questoes GROUP BY idQuest";
$resultado2 = mysql_query($sql2) or die(mysql_error());
while  ($sql2 = mysql_fetch_array ($resultado2) ) {

$idQuest = $sql2['idQuest'];
$votos = $sql2['votos'];
$questao = $sql2['questao'];
$total = $sql2['total'];


// Porcentagem


$porcentagem = $votos / $total * 100;

echo "


     <tr>
       <td width='124'>$questao</td>
       <td width='170'>$porcentagem%</td>
     </tr>

   Total de votos: $total

  ";

  	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql2 = "SELECT `idQuest`, `questao`, COUNT(`votos`) as `votos`, SUM(`votos`) as `total` FROM `questoes` GROUP BY `idQuest`";

tenta assim..

 

estamos perto de resolver,

a quantidade de votos está aparecendo 3 e somando todos os votos da mais de 80.

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `questoes` (

`idQuest` int(11) NOT NULL AUTO_INCREMENT,

`questao` text NOT NULL,

`votos` int(11) NOT NULL,

PRIMARY KEY (`idQuest`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

 

votar.php //formulário

 

   <form action="enquete/votar.php" method="post" onsubmit="javascript:abrir('enquete/votar.php');" target="ver">
   <div id="conteudo-menu2">

<?php

require ("king/conexao.php");
$sql2 = "SELECT * FROM questoes";
$resultado2 = mysql_query($sql2) or die(mysql_error());
while  ($sql = mysql_fetch_array ($resultado2) ) {

$idQuest = $sql['idQuest'];
$questao = $sql['questao'];
$votos = $sql['votos'];

echo "<input name='radio' type='radio' value='$idQuest' />$questao<br>";
}

?>

   <br />
<input type="submit" value="Votar" name="submit" />
<a href="javascript:abrir('enquete/resultado.php');">[Resultado Parcial]</a></div>
</form>

 

votar_envia.php

<?php

$radio = $_POST['radio'];

require("../king/conexao.php");

$sql = "SELECT * FROM questoes WHERE idQuest = '$radio'";
$resultado = mysql_query($sql) or die(mysql_error());
while  ($sql = mysql_fetch_array ($resultado) ) {

	$idQuest = $sql['idQuest'];
	$votos = $sql['votos'];

	$soma = $votos + 1;


$sql2 = "UPDATE questoes SET votos='$soma' WHERE idQuest='$idQuest'";

$resultado2 = mysql_query($sql2) or die ("Erro ao inserir conteudo ao banco de dados" . mysql_error());

 echo	'<table width="3" border="0" cellspacing="1" cellpadding="2">
 <tr>
   <td bgcolor="#EBEBEB"><div align="center"><span class="style1">Obrigado por votar!</span></div></td>
 </tr>
 <tr>
   <td height="80"><div align="center"><span class="style2"><a href="resultado.php">Veja o resultado.</a></span><a href="resultado.php"></a></div></td>
 </tr>
</table>';


}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que vai??? Testa ai!!! :lol:

SELECT `idQuest`, `questao`, `votos`, COUNT(`votos`) as `total` FROM `questoes` GROUP BY `questao`, `votos`

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe... olhei somente a estrutura da tua tabela e não me dei contade que o campo [`questao` text NOT NULL] se refere a resposta e não à questão e que essa tua tabela de enquete só vai suportar uma pergunta...

Mas, vamos ao que interressa...

 

Dados na tabela:

[table=questoes]

[tr][td]idQuest[/td] [td]questao[/td] [td]votos[/td][/tr]

[tr][td]6[/td] [td]Sou anão...[/td] [td]34[/td][/tr]

[tr][td]7[/td] [td]Sou uma tartaruga ninja...[/td] [td]27[/td][/tr]

[tr][td]8[/td] [td]Emo eu?[/td] [td]5[/td][/tr]

[/table]

 

Consulta SQL:

SELECT `idQuest`, `questao`, `votos`, (`votos` * 100 / (SELECT SUM(`votos`) FROM `questoes`)) AS `porcentagem` FROM `questoes`;

 

Resultado:

[table=questoes]

[tr][td]idQuest[/td] [td]questao[/td] [td]votos[/td] [td]porcentagem[/td][/tr]

[tr][td]6[/td] [td]Sou anão...[/td] [td]34[/td] [td]51.5152[/td][/tr]

[tr][td]7[/td] [td]Sou uma tartaruga ninja...[/td] [td]27[/td] [td]40.9091[/td][/tr]

[tr][td]8[/td] [td]Emo eu?[/td] [td]5[/td] [td]7.5758[/td][/tr]

[/table]

 

Beleza?

 

 

Edição: esse bbcode de tabela ta bem estranho hein? ele meteu uns br bem sinistros entre a div titulo e a tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código funcionou corretamente, agora uma duvida como eu faço pra saber o total de votos e deixar a porcentagem em números inteiros?

 

O código funcionou corretamente, agora uma duvida como eu faço pra saber o total de votos e deixar a porcentagem em números inteiros?

 

a porcentagem com inteiros eu consegui usando intval, só a quantidade de votos que ainda não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o total faça o seguinte(dentro do while):

$total .= $sql2['votos'];

e quando acabar o while você da o echo do $total.

 

Para arredondar tu ja fez... :joia: mas pode usar round também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta certo em usar +=, heheheh

viajei com o .= isso é pra string...

 

E estamos ai para isso, tentar ajudar e ensinar o que puder.

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.