Ir para conteúdo

marcosberaldo

Members
  • Total de itens

    5
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre marcosberaldo

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. marcosberaldo

    Exibindo um intervalo de dados dentro de um array

    Boa noite. Estou criando um ranking de pontuação e preciso colocar uma paginação nesse ranking mas não posso fazer a paginação pelo select, pois a select tem que somar os pontos de cada jogador informados em cada registro no banco, se eu limito a select ele só vai somar os pontos dos registros da página e não todos os pontos do jogador. Dessa forma optei por fazer a select normalmente e criar um array onde eu pretendo exibir somente parte dos dados. Em resumo, consegui fazer da seguinte forma: $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 0; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Esse código me retorna 10 registros do array, até ai tudo bem, mas eu gostaria de exibir apenas um intervalo, por exemplo do registro 5 ao 9. Tentei da seguinte forma: $dados = mysqli_query($conn, "SELECT *, sum(Pontos) as TotalPontos, sum(Acerto_Exato) as Acertos FROM placares INNER JOIN jogadores ON placares.JogadorID = jogadores.id WHERE campeonato='$campeonato' GROUP BY JogadorID ORDER BY TotalPontos DESC, Acertos DESC "); for($a = 5; $a < 9; $a++ ) { $row = mysqli_fetch_array($dados); echo $row['JogadorID']. " - " .$row['nome']; } Dessa forma ele me mostra apenas 5 registros, mas ele sempre me mostra os 5 primeiros e eu preciso carregar os últimos 5. Como faço???
  2. marcosberaldo

    Criando ranking e mostrando 20 resultados do meio da lista.

    É uma ideia interessante, deve funcionar. Vou tentar isso em breve. Obrigado pela dica
  3. marcosberaldo

    Criando ranking e mostrando 20 resultados do meio da lista.

    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>"; }
×

Informação importante

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