Ir para o conteúdo
nmoa

[Resolvido] paginação com url amigaveis

Mensagens Recomendadas

nmoa

boas

tenho o meu site com url amigáveis e agora estou com dificuldade em fazer a paginação do mesmo

estou a fazer desta forma

$pag = $_GET["pag"];

// Verifica se a variável tá declarada, senão deixa na primeira página como padrão
if (isset($pag)) {
$pag = $pag;
} else {
$pag = 1;
}

$qnt = 15;
$inicio = ($pag * $qnt) - $qnt;


$sql = mysql_query("SELECT *, i.id_imovel as im, i.id_energetico as ener FROM imovel as i
INNER JOIN`imovel_localizacao` as l ON l.`id_imovel`=i.`id_imovel`
INNER JOIN`imovel_caracteristicas` as caract ON caract.`id_imovel`=i.`id_imovel`
INNER JOIN `destritos` as d ON d.`id_destritos`=l.`id_destritos`
INNER JOIN `concelhos` as c ON c.`id_concelhos`=l.`id_concelhos`
INNER JOIN `freguesia` as f ON f.`id_freguesia`=l.`id_freguesia`
WHERE i.ativo=1 ORDER BY i.data DESC limit $inicio, $qnt ");

$local2 = mysql_query("SELECT * FROM imovel as i
INNER JOIN`imovel_localizacao` as l ON l.`id_imovel`=i.`id_imovel`
INNER JOIN`imovel_caracteristicas` as caract ON caract.`id_imovel`=i.`id_imovel`
INNER JOIN `freguesia` as f ON f.`id_freguesia`=l.`id_freguesia`
INNER JOIN `imovel_valor` as v ON v.`id_imovel`=i.`id_imovel`
WHERE i.ativo=1 ");

$total_registros = mysql_num_rows($local2);
$pags = ceil($total_registros / $qnt);

// o resto do conteudo não intressa para o caso

a parte da numeração

$max_links = 3;


// Exibe o primeiro link "primeira página", que não entra na contagem acima(3)
echo '<a href="'.url.'/'.$pasta1.'/1" target="_self">primeira pagina</a> ';
// Cria um for() para exibir os 3 links antes da página atual
for ($i = $p - $max_links; $i <= $p - 1; $i++) {
// Se o número da página for menor ou igual a zero, não faz nada
// (afinal, não existe página 0, -1, -2..)
if ($i <= 0) {
//faz nada
// Se estiver tudo OK, cria o link para outra página
} else {
echo '<a href="'.url.'/'.$pasta1.'/' . $i . '" target="_self">' . $i . '</a> ';
}
}

// Exibe a página atual, sem link, apenas o número
echo $p . " ";
// Cria outro for(), desta vez para exibir 3 links após a página atual
for ($i = $p + 1; $i <= $p + $max_links; $i++) {
// Verifica se a página atual é maior do que a última página. Se for, não faz nada.
if ($i > $pags) {
//faz nada
}
// Se tiver tudo Ok gera os links.
else {
echo '<a href="'.url.'/'.$pasta1.'/' . $i . '" target="_self">' . $i . '</a> ';
}
}
// Exibe o link "última página"
echo '<a href="'.url.'/'.$pasta1.'/' . $pags . '" target="_self">ultima pagina</a> ';

tentei usar com o get exemplo ...www.omeudominio.pt/imovel?pag=1 mas não dá.....

obrigado desde já

Editado por nmoa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nmoa

Oi, qual é o erro?

o erro? não muda para a página seguinte....ou seja aparece o numero da pagina 2 no url mas a listagem da bd continua na pagina 1

pq não está a reconhecer a var $pag

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

Nos links que crias:

a href="'.url.'/'.$pasta1.'/' . $i . '" target="_self">' . $i . '</a> ';

onde está a parte

pag=X

?

exemplo

www.omeudominio.pt/imovel?pag=1

EDIT: tambem nao vejo de onde o valor da var $pasta1 vem...

Editado por tiago.f

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nmoa

Nos links que crias:

a href="'.url.'/'.$pasta1.'/' . $i . '" target="_self">' . $i . '</a> ';

onde está a parte

pag=X

?

exemplo

www.omeudominio.pt/imovel?pag=1

EDIT: tambem nao vejo de onde o valor da var $pasta1 vem...

sim aqui tinha tirado o ?pag=1 para testar e usei apenas a barra / e paginação à frente

a $pasta1 vem daqui

$url = explode('/', $_GET['url']);
       $pasta1 = $url[0];
       $file1 = $url[1];
       $sub= $url[2];
       $file2 = $url[3];
       $sub2= $url[4];
       $file3 = $url[5];
       $sub3= $url[6];
       $file4 = $url[7];
       $sub4= $url[8];
       $pages=$url[9];


Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
tiago.f

Podes então mostrar o codigo todo?

Já agora, no browser, saca o source code da página e coloca também (que virá já com o php processado)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nmoa

boas

amostra como carregas a variável «$inicio» na querie $sql.

cumps

acao

assim

if (isset($pag)) {
                   $pag = $pag;
               } else {
                   $pag = 1;
               }

               $qnt = 15;
               $inicio = ($pag * $qnt) - $qnt;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas,

parece estar bem,

depois de clicar na pagina 2 verifica na url do browser se o url é correcto, (pagina e variável get da pagina 2 = 2).

cumps

acao

eu disse parece estar bem porque para o pedido de ajuda não interfere, mas atenção que não obtens o primeiro registo.

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nmoa

boas,

parece estar bem,

depois de clicar na pagina 2 verifica na url do browser se o url é correcto, (pagina e variável get da pagina 2 = 2).

cumps

acao

eu disse parece estar bem porque para o pedido de ajuda não interfere, mas atenção que não obtens o primeiro registo.

boas

aparece

http://www.in-portugal.pt/live3/imoveis?pag=2

eu fiz um echo para saber qual a pagina que ele vai buscar no GET e vai sempre buscar a 1 devido a esta condição

if (isset($pag)) {
$pag = $pag;
} else {
$pag = 1;
}

deduzo então que ele não esta a detectar o GET :/

ja resolvi

tive que tirar o ? e colocar &pag=

obrigado :)

Editado por nmoa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.