RenanPA 0 Denunciar post Postado Novembro 26, 2011 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
Matheus Tavares 167 Denunciar post Postado Novembro 26, 2011 $sql2 = "SELECT sum(votos) as total, idQuest, questao FROM questoes GROUP BY idQuest"; $votos = $sql2['votos']; Onde você selecionou a coluna votos? As únicas colunas selecionadas foram total, idQuest e questao. Compartilhar este post Link para o post Compartilhar em outros sites
RenanPA 0 Denunciar post Postado Novembro 26, 2011 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
Matheus Tavares 167 Denunciar post Postado Novembro 26, 2011 $sql2 = "SELECT `idQuest`, `questao`, COUNT(`votos`) as `votos`, SUM(`votos`) as `total` FROM `questoes` GROUP BY `idQuest`"; tenta assim.. Compartilhar este post Link para o post Compartilhar em outros sites
RenanPA 0 Denunciar post Postado Novembro 26, 2011 $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
Matheus Tavares 167 Denunciar post Postado Novembro 26, 2011 Poste a estrutura da sua tabela e exemplo de como os dados estão inseridos. Vai facilitar para visualizarmos onde está o problema. Compartilhar este post Link para o post Compartilhar em outros sites
RenanPA 0 Denunciar post Postado Novembro 26, 2011 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
Leonardo Leal 4 Denunciar post Postado Novembro 27, 2011 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
RenanPA 0 Denunciar post Postado Novembro 27, 2011 não funcionou não =/ Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Novembro 27, 2011 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
RenanPA 0 Denunciar post Postado Novembro 27, 2011 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
Leonardo Leal 4 Denunciar post Postado Novembro 27, 2011 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
RenanPA 0 Denunciar post Postado Novembro 27, 2011 consegui somar dessa forma $total += $sql2['votos']; valeu pela ajuda Leonardo, resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo Leal 4 Denunciar post Postado Novembro 27, 2011 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