Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarcosMattos

Paginação com um erro

Recommended Posts

Pessoal tenho um rank com paginação até agora tudo certo mas na paginação quando altera a pagina a contagem da posição do cara inicia do um cada apgina nova é uma contagem diferente como faço para defini cada jogar na sua posição

 

 

atualmente eu usso isso

$posicao = $posicao + 1;
$posicao = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só usar a cabeça: a posição inicial será a ((página - 1) x a quantidade de registros por página) + 1, por exemplo:

Página 1: ((1-1)*20)+1 = 1 (registro inicial = 1)

Página 2: ((2-1)*20)+1 = 21 (registro inicial = 21)

Página 3: ((3-1)*20)+1 = 41 (registro inicial = 41)

 

E assim sucessivamente, a única coisa que muda é a página, o resto da equação sempre será igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais eu vou sempre ter que alterar o valors das paginas?

 

Manualmente?

Eu uso é páginação ou seja ele traz 5 resultados e cria nova pagina sosinho e tals cada apgina tem 5 resultados

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenho que add pagina por pagina? mais eu n tenho um limite de paginas q vao ser criadas..

 

meu problema nesse caso ai é que vai passa os registrados ai eu terei q fazer o codigo cada vez q passa certo? tem algo q eu poderia fazer para ue ele continuase sosinho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tchê, novamente, vamos usar a cabeça, se o seu script já tem a paginação, você já tem a informação de "em que página" está, logo, não precisa "alterar valor" algum, basta pegar a informação que o script já tem e usar ali.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma regra muito importante da vida: não se meta naquilo que você não sabe.. quer galho sem conhecimento, desculpe, isto não existe... se alguém chegar com a perna quebrada você vai tentar ajeitar? Não né...

 

Quanto ao problema, não vou bolar um exemplo, posta o código E AS TENTATIVAS que você fez, a partir disto vou te ajudar a você entender o que estou falando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que tentei fazer é assim: deu certo masi eu preciso sempre estar alterando para pode add paginas novas se passarem o cadastro...

$pag= isset( $_GET['pag'] ) ? $_GET['pag'] : null;
$posicao = "0";
switch ( $pag ){

	case '1':
	$posicao = "1";
	break;

	case '2':
	$posicao = "21";
	break;

	case '3':
	$posicao = "41";
	break;
}
	

print $posicao = $posicao + 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

$pag = isset( $_GET['pag'] ) ? $_GET['pag'] : null;

$registros_por_pagina = 20;

$pag= 1;
if(!empty($pag))
{
	$posicao = ($pag - 1) * $registros_por_pagina + 1;
}

print $posicao;

Não precisa fazer um para cada um, é só multiplicar a página atual pela quantidade de registros por página, conforme já postaram antes.

Como está no código acima, na página 1 o ranking começa em 1.

 

Na página 2, começa em 21 pois:

$posicao = (2 - 1) * 20 + 1 = 21

 

Na página 3, começa em 41 pois:

$posicao = (3 - 1) * 20 + 1 = 41

Na página 4, começa em 61 pois:

$posicao = (4 - 1) * 20 + 1 = 61

 

E assim por diante.

Compartilhar este post


Link para o post
Compartilhar em outros sites


$pag= isset( $_GET['pag'] ) ? $_GET['pag'] : 1;

$posicao = (($pag-1)*20)+1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal fiz uma paginação no meu rank que conta ate 10 cria nova apgina

 

só que na segunda pagina sempre no cra da 20º posição está repetindo ele na terceira pagina alguem pode me ajduar pq já quebrei a cabeça e até agora nada.

 

 

aqui o script

$position = isset( $_GET['pag'] ) ? $_GET['pag'] : null;

$registros_por_pagina = 10;

$posicao = 1;
if(!empty($position))
{
	$posicao = ($position - 1) * $registros_por_pagina + 1;
}


$inicio = 0;
$limite = 10;
	$busca = mysql_query("SELECT * FROM usuarios ORDER BY pontosrank DESC LIMIT $inicio, $limite");

while ($array = mysql_fetch_object($busca))
{
echo $posicao . "º";
$posicao = $posicao + 1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tópico fundido com outro do mesmo autor que trata exatamente do mesmo assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que a paginação funcione a variável início precisa ser alterada de acordo com a página atual...

 

Ex:

  • $inicio = 0 e $limite = 10 -> página 1
  • $inicio = 10 e $limite = 10 -> página 2
  • ...

Da uma olhadinha melhor na lógica do seu código. Não entendi pq você iniciou a variável $posicao no início do script se você a utiliza dentro do while. Eu faria dessa forma:

<?php
$position = isset($_GET['pag']) ? int($_GET['pag']) : 0;

$registros_por_pagina = 10;

$inicio = 0;
$limite = 10;

if (!empty($position)) {
    $inicio = (($position-1)*$registros_por_pagina)+1;
}

$busca = mysql_query("SELECT * FROM usuarios ORDER BY pontosrank DESC LIMIT $inicio, $limite");

$posicao = 1;

while ($array = mysql_fetch_object($busca)) {
    echo $posicao . "º";
    $posicao++;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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