Jump to content

marcosberaldo

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About marcosberaldo

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. marcosberaldo

    Criando ranking e mostrando 20 resultados do meio da lista.

    É uma ideia interessante, deve funcionar. Vou tentar isso em breve. Obrigado pela dica
  2. Pessoal, boa noite. Tenho uma tabela no BD que preciso criar um rankin. Fiz uma select que soma duas colunas, de pontuação e outra de desempate, depois ordena as somas por jogador e cria o ranking. Até ai está funcionando blz. Meu problema é o seguinte: Imagine que existam 100 jogadores, eu estou em 70º. Eu quero mostrar o rankin com a minha colocação, mas é inviável criar uma lista com mais de 70 jogadores. O que eu quero é mostrar 10 colocações antes de mim e 10 depois de mim, ou seja, mostrar do 60º ao 80º colocado, mas não consigo fazer isso. No meu código criei até um while que identifica minha colocação (70º), mas não consegui criar um while que exiba somente esses 20 jogadores. Se alguém souber como resolver... fico muito grato. Segue o código: $sql = "SELECT *, SUM(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE rodada = '$rodada' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acerto_Exato DESC"; // Inicia o While de pontuação $result = mysqli_query($conn, $sql); $result2 = mysqli_query($conn, $sql); $i = 1; // Define 1 para o primeiro lugar no ranking // Esse while identifica minha posição no ranking while($r = mysqli_fetch_assoc($result2)) { $ID_Jog = $r['JogadorID']; $Pos = $totalArray[$r['JogadorID']] = $i++; if($LoginID == $ID_Jog) { $Minha_Colocacao = $Pos; } } while($row = mysqli_fetch_assoc($result)) { $ID_Jogador = $row['JogadorID']; $Posicao = $totalArray[$row['JogadorID']] = $i++."º "; $RankJogador = $row['nome']; $Pontos = $row['TotalPontos']; $AcertoExato = $row['Acertos']; // Verifica se o usuário é o jogador logado e marca um style diferente para ele. if($LoginID == $ID_Jogador) { // Se for o mesmo jogador define um fundo colorido para a linha dele na tabela $destaque = "style=\"background-color:#e6a527\""; //$Pos = explode('º',$Posicao); } else { // Caso não seja zera a variável novamente. unset($destaque); } echo " <div class=\"divTableRow\" $destaque> <div class=\"divTableCell\" align=\"center\">$Posicao</div> <div class=\"divTableCell\" >$RankJogador</div> <div class=\"divTableCell\" align=\"center\">$Pontos</div> <div class=\"divTableCell\" align=\"center\">$AcertoExato</div> </div>"; }
  3. marcosberaldo

    [Resolvido] Como somar valores de uma função dentro de um while

    Consegui resolver. Obrigado.
  4. Boa noite. Tenho uma dúvida para completar uma função no sistema, vou tentar explicar de forma resumida. Cada jogador lança 10 resultados para um jogo (são 10 registros no BD). Um select puxa esses resultados e aplica uma fórmula que define a pontuação para cada um dos 10 resultado (máx 3 pontos por palpite). Em seguida tem um comando que soma os pontos de cada um desses palpites, podendo chegar a um total de até 30 pontos. Até aqui tudo bem, agora eu preciso que a página faça isso para vários jogadores (todos que enviaram palpites) e preciso guardar o total de cada jogador em uma variável para ser utilizada fora do while, mas não sei como fazer isso. Se puderem me ajudar... Segue o código: // Inicia o While $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_assoc($result)) { // Recebe as variáveis do banco e aplica a pontuação para cada palpite do jogador if($row['PlacarReal'] == $row['PlacarJogador']) { $Pontos = 3; } else { if($row['MResult'] == $row['PResult']) { $Pontos = 1; } else { $Pontos = 0; } } // Soma o total de pontos para o jogador (dentre os 10 palpites). $PontosRodada += $Pontos; Agora preciso fazer o mesmo para os outros jogadores que estão no banco... separando o total de cada um deles
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.