Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Em uma tabela de nome tb_camiseta tenho a seguinte estrutura:
Campo1: Id_camiseta - int – 11 – chave primária
Campo2: Escolha – varchar - 2
O Campo 2 “Escolha” recebe os valores C1 ou C2 como parte da votação de qual camiseta é a preferida.
O que gostaria de fazer é contar quantos votos foram validados para C1 e quantos foram validados para C2 e qual das duas recebeu o maior número de votos.
Como faço isso usando PHP PDO?
Faça diretamente em sql usando count e group by:
SELECT
campo_escolha,
count(*)
FROM
tabela
GROUP BY
campo_escolha;
Com o group by, você agrupará os resultados iguais e com count, contará os registros por agrupamento.
Conforme forem os seus critérios, podem ser adicionados ao group by.
Muito obrigado a ambos. Vou tentar e já reporto o resultado.
Muito bem.
Como consegui saber a quantidade de votos em para cada camiseta?
Fiz assim:
//contar quantos arquivos há gravados na tabela para a camiseta1
$totalRegC1 = $con->prepare("SELECT id_usuario FROM camiseta_formatura WHERE escolha=:escolha");
$totalRegC1->bindValue(":escolha",'c1');
$totalRegC1 -> execute();
echo $totalRegC1->rowCount();//resultaod
//contar quantos arquivos há gravados na tabela para a camiseta2
$totalRegC2 = $con->prepare("SELECT id_usuario FROM camiseta_formatura WHERE escolha=:escolha");
$totalRegC2->bindValue(":escolha",'c2');
$totalRegC2 -> execute();
echo $totalRegC2->rowCount();//resultado
Pergunto? Tem como subtrair um resultado do outro para e colocar tipo: <?php echo o vencedor é: $vitoria ?>
Na verdade é só fazer uma Query de com SUM no campo que deseja contabilizar, utilizando também o group by no campo de referência.
EX:
SELECT Id_camiseta, COUNT(Escolha) as Total FROM Camisetas GROUP BY Id_camiseta