Orkut Gmail Agenda Docs Web mais »
Grupos visitados recentemente | Ajuda | Acessar
Página inicial dos Grupos do Google
Ajuda com for()
Há um número excessivo de tópicos que aparecem em primeiro plano neste grupo. Para fazer com que este tópico apareça primeiro, elimine essa opção de um outro tópico.
Erro ao processar a solicitação. Tente novamente.
sinalizar
  6 mensagens - Recolher todas  -  Traduzir tudo para Traduzido (ver todos os originais)
O grupo no qual você está postando é um grupo da Usenet. As mensagens postadas neste grupo farão com que o seu e-mail fique visível para qualquer pessoa na internet.
Sua resposta não foi enviada.
Postagem publicada
 
De:
Para:
Cc:
Encaminhar para
Adicionar Cc | Adicionar Encaminhar para | Editar Assunto
Assunto:
Validação:
Com o objetivo de verificação, digite os caracteres que você vê na figura abaixo ou os números que ouvir ao clicar no ícone de acessibilidade. Ouça e digite os números que ouvir
 
Alfredao~  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 20 nov 2009, 15:36
De: "Alfredao~" <alfredo.costaesi...@gmail.com>
Data: Fri, 20 Nov 2009 09:36:02 -0800 (PST)
Local: Sex 20 nov 2009 15:36
Assunto: Ajuda com for()
Tenho um servidor de um jogo que utiliza mssql.
Gostaria de fazer páginação no ranking do servidor.

O Problema está na hora de exibir as páginas.

Se eu estiver na Página 1 ele exibe.

1 - 5 | Próxima >

Na página 6, ficaria assim:

< Anterior | 1 - 6 - 11 | Próxima >

Na página 9, ficaria assim:

< Anterior | 4 - 9 - 14 | Próxima >

Eu gostaria de exibir 5 Links após a página atual, e 5 antes da
anterior. Mas não está dando certo.

<?

$num_por_pagina = 10; // Número de Itens por página
$pagina = $_GET["pagina"]; // Pega o número da página

if(!$pagina) // Se não for definido a página ela será igual à 1
{
        $pagina = 1;

}

$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;
if ($pagina == 1)
{
        $res = mssql_query("SELECT TOP $num_por_pagina * FROM TotalRanking
WHERE Rank > $primeiro_registro-1 AND Opened = 1 ORDER BY Rank ASC");
}

else
{
        $res = mssql_query("SELECT TOP $num_por_pagina * FROM TotalRanking
WHERE Rank >= $primeiro_registro AND Opened = 1 ORDER BY Rank ASC");

}

$consulta = mssql_query("SELECT COUNT(*) FROM TotalRanking"); // Total
de Itens no Banco
list($total_usuarios) = mssql_fetch_array($consulta);

$total_paginas = ceil($total_usuarios/$num_por_pagina); // Total de
páginas

$max_links = 5; // Número de Links antes e depois da página atual

?>

O Problema está aqui, ele não está exibindo os Links corretamente.

<?

// Cria um for() para exibir os 5 links antes da página atual
for($i = $pagina-$max_links; $i <= $pagina-1; $i++)
{
        // Se o número da página for menor ou igual a zero, não faz nada
        if($i <=0)
        {
                //faz nada
                // Se estiver tudo OK, cria o link para as outras páginas
        }
        else
        {
                echo "<a href=\"index.php?do=ranking&tipo=player&pagina=$i\">$i</
a>";
        }

}

// Cria outro for(), desta vez para exibir 5 links após a página atual
for($i = $pagina+1; $i <= $pagina+$max_links; $i++)
{
        // Verifica se a página atual é maior do que a última página. Se for,
não faz nada.
        if($i > $total_paginas)
        {
                //faz nada
                // Se tiver tudo Ok gera os links.
        }
        else
        {
                echo "<a href=\"index.php?do=ranking&tipo=player&pagina=$i\">$i</
a>";
        }

}

?>

Será que alguém ai poderia me ajudar?
Desde já agradeço, Alfredo.


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Mateus Souza  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 20 nov 2009, 18:12
De: Mateus Souza <mateusbaih...@gmail.com>
Data: Fri, 20 Nov 2009 12:12:48 -0800 (PST)
Local: Sex 20 nov 2009 18:12
Assunto: Re: Ajuda com for()
Aproveitando a duvida do Alfredão...rsrs

Em um loop usar FOR ou WHILE para consultas no banco de dados....qual
se sai melhor na questão de performance?

On 20 nov, 15:36, "Alfredao~" <alfredo.costaesi...@gmail.com> wrote:


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Beatriz KMS  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 20 nov 2009, 20:42
De: Beatriz KMS <beatriz...@gmail.com>
Data: Fri, 20 Nov 2009 20:42:49 -0200
Local: Sex 20 nov 2009 20:42
Assunto: Re: [ PHP - Google ] Ajuda com for()
Nao entendi pq dois loops...

Faz o loop indo de 1 ao numero total de paginas

Se o numero da pagina estiver no intervalo entre $pagina_atual - 5 e
$pagina_atual + 5, manda imprimir.

Taí a logica, só traduzir pro php. Muito simples.

2009/11/20 Alfredao~ <alfredo.costaesi...@gmail.com>:


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Beatriz KMS  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 20 nov 2009, 20:56
De: Beatriz KMS <beatriz...@gmail.com>
Data: Fri, 20 Nov 2009 20:56:43 -0200
Local: Sex 20 nov 2009 20:56
Assunto: Re: [ PHP - Google ] Ajuda com for()
Fui testar seu script. Mas ele nao esta errado, nao.

Pagina 1 imprime: 2 3 4 5 6
Pagina 4: 1 2 3 5 6 7 8 9
Pagina 8: 3 4 5 6 7 9 10 11 12 13

Não é isso que vc quer?
Nao vi nada de errado. Eu só faria diferente, com um loop só, como
falei na outra mensagem. Nao só faria, como já fiz paginação assim, e
tb sempre com links de primeira e ultima pagina.

2009/11/20 Alfredao~ <alfredo.costaesi...@gmail.com>:


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Alfredo Costa  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 21 nov 2009, 10:41
De: Alfredo Costa <alfredo.costaesi...@gmail.com>
Data: Sat, 21 Nov 2009 10:41:08 -0200
Local: Sab 21 nov 2009 10:41
Assunto: Re: [ PHP - Google ] Re: Ajuda com for()

Descobri por que não estava funcionando. olha oque eu estava fazendo

Estava colocando uma variável para os links, e dar um echo na parte HTML pra
aparecer os Links, mas o Loop não funcionava.

<?
// Cria um for() para exibir os 5 links antes da página atual
for($i = $pagina-$max_links; $i <= $pagina-1; $i++)
{
    // Se o número da página for menor ou igual a zero, não faz nada
    if($i <=0)
    {
        //faz nada
        // Se estiver tudo OK, cria o link para as outras páginas
    }
    else
    {
        $anteriores = "<a
href=\"index.php?do=ranking&tipo=player&pagina=$i\">$i</a>";
    }

}

$atual = $pagina;

// Cria outro for(), desta vez para exibir 5 links após a página atual
for($i = $pagina+1; $i <= $pagina+$max_links; $i++)
{
    // Verifica se a página atual é maior do que a última página. Se for,
não faz nada.
    if($i > $total_paginas)
    {
        //faz nada
        // Se tiver tudo Ok gera os links.
    }
    else
    {
        $proximas = "<a
href=\"index.php?do=ranking&tipo=player&pagina=$i\">$i</a>";
    }

}

?>

echo $anteriores $atual $proximas

Obrigado por tudo.

2009/11/20 Beatriz KMS <beatriz...@gmail.com>


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
emerson design design  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 21 nov 2009, 00:54
De: emerson design design <emersondesign2...@gmail.com>
Data: Sat, 21 Nov 2009 00:54:41 -0200
Local: Sab 21 nov 2009 00:54
Assunto: Re: [ PHP - Google ] Re: Ajuda com for()

não existe diferença em você usar while ou for, os dois faz a mesma função
então a performace é a mesma.
em questão de qual usar depende de você eu gosto de usar while ^^

2009/11/20 Beatriz KMS <beatriz...@gmail.com>


    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Fim das mensagens
« Voltar às Discussões « Tópico recente     Tópico antigo »

Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2010 Google