Ir para conteúdo
  • 0
Renato Harly

Desempate de votos com classificação dos eleitos

Pergunta

Estou criando um sistema onde 4 candidatos são eleitos por maioria de votos. Sendo que o mais votado recebe a classificação de Presidente, o 2º mais votado recebe a classificação de Vice-Presidente, o 3º mais votado recebe Secretário e o 4º mais votado fica como Suplente. Mas se existir empate entre eles o critério de desempate  seria por mais tempo de serviço em uma instituição. Não estou sabendo fazer o critério de desempate. Alguém tem alguma ideia? Esse é o código pra atribuir a classificação de acordo com o número de votos

 

<?php

$sql = "SELECT `qnt_voto` FROM `votos` WHERE `qnt_voto` = (SELECT MAX(`qnt_voto`) FROM `votos`)";
$sql = $conexao->query($sql);
$row = $sql->fetch_assoc();
$row5 = $row['qnt_voto'];
$_SESSION['num'] = $row5;
if($sql == true){
        
        $colocacao = "UPDATE votos SET status_voto = 'Presidente'
        WHERE qnt_voto = '".$_SESSION['num']."'";
        $colocacao_resultado = mysqli_query($conexao, $colocacao);

}

$sql = "SELECT MAX(`qnt_voto`) FROM `votos` WHERE `qnt_voto` < (SELECT MAX(`qnt_voto`) FROM `votos`)";
$sql = $conexao->query($sql);
$row = $sql->fetch_assoc();
$row5 = $row['MAX(`qnt_voto`)'];
$_SESSION['num2'] = $row5;
if($sql == true){
        
        $colocacao = "UPDATE votos SET status_voto = 'Vice-Presidente'
        WHERE qnt_voto = '".$_SESSION['num2']."'";
        $colocacao_resultado = mysqli_query($conexao, $colocacao);
    
    
}


$sql = "SELECT MIN(`qnt_voto`) FROM `votos` WHERE `qnt_voto` > (SELECT MIN(`qnt_voto`) FROM `votos`)";
$sql = $conexao->query($sql);
$row = $sql->fetch_assoc();
$row5 = $row['MIN(`qnt_voto`)'];
$_SESSION['num3'] = $row5;
if($sql == true){
        
        $colocacao = "UPDATE votos SET status_voto = 'Secretário'
        WHERE qnt_voto = '".$_SESSION['num3']."'";
        $colocacao_resultado = mysqli_query($conexao, $colocacao);

  
}   


$sql = "SELECT `qnt_voto` FROM `votos` WHERE `qnt_voto` = (SELECT MIN(`qnt_voto`) FROM `votos`)";
$sql = $conexao->query($sql);
$row = $sql->fetch_assoc();
$row5 = $row['qnt_voto'];
$_SESSION['num4'] = $row5;
if($sql == true){
        
        $colocacao = "UPDATE votos SET status_voto = 'Suplente'
        WHERE qnt_voto = '".$_SESSION['num4']."'";
        $colocacao_resultado = mysqli_query($conexao, $colocacao);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por jcsalim
      Pessoal boa noite, sou novo no fórum e estou precisando da ajuda de vocês no mysql.
       
      Seguinte: Tenho uma tabela com o nome de tbl_candidados essa tabela guarda a inscrição, nome_cand, idade, nota_total, tempo_serv, form_profissional, data_nasc.
      Veja o que preciso, para exibir em uma mesma grid.
      1 - Selecionar na tabela os candidatos que tiveram a maior nota em ordem decrescente,
      Se houver empate:
      2 - se o candidato ao cargo tiver idade  >= 60 anos, está classificado,
      3  - caso não tenha candidatos ao cargo que possua 60 anos ou mais, terei que classificar conforme a maior nota de tempo_serv,
      e se tiver notas com valores iguais,
      4 - classifico pela formação profissional de acordo com a maior nota, agora se houver empate classifico pela data de nascimento, observando dia/mes/ano de nascimento.
       
      TRADUZINDO
       Exibo a nota total de todos os candidatos,
       
      Caso houver empate:
      Verifico se tem algum candidato com idade igual  o ou maior que 60 anos, se sim está classificado e se der empate verifico a maior nota de tempo de serviço e se tiver empate na nota de tempo de serviço verifico a nota de formação profissional e se houver empate, classifico pela data de nascimento dia/mes/ano.
       
      Caso não tenha candidatos com 60 anos ou mais, faço a classificação pelo tempo de serviço (maiores notas) se tiver notas iguais, classifico pela nota de formação profissional e se mesmo assim houver empate classifico pela data de nascimento dia/mes/ano.
       
      Caso ainda haja empate será no par ou impar.
       
       
      Agora como posso montar isso no mysql estou utilizando php e mysql, peço ajuda dos colegas, pois meio leigo no mysql, conheço pouco.
       
      Me ajudem aí, como fazer o que fazer.
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.