grldesign 0 Denunciar post Postado Dezembro 29, 2003 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. Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Dezembro 29, 2003 Qual o erro ?!? Em qual linha ? De qual dos arquivos ? Compartilhar este post Link para o post Compartilhar em outros sites
grldesign 0 Denunciar post Postado Dezembro 29, 2003 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
walace 1 Denunciar post Postado Dezembro 29, 2003 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
grldesign 0 Denunciar post Postado Dezembro 29, 2003 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
walace 1 Denunciar post Postado Dezembro 29, 2003 ...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