kornetu 0 Denunciar post Postado Abril 6, 2010 Olá pessoal, preciso de uma ajuda na paginação: Estou com problema para pegar o $_GET[$id] nas outras páginas de minha paginação. Abaixo segue um pedaço do código. <? $id= $_GET['id']; ?> Casamento/ <? if($id==1){?>Topo de Bolos <? } if($id==4){?>Lembrancinhas <? } ?> <? $limit=15; $pag_atual = empty($_GET['pag']) ? 1 : (int)$_GET['pag']; // mostra o total de fotos no banco $sql = "SELECT COUNT( 'id_ft' ) AS numero FROM fotos WHERE ((id_cf = $id) AND ( upload_ft =1))" ; Explicando:Abaixo o código pega o id vindo de uma destas urls: galeriacasamento.php?id=1 ou galeriacasamento.php?id=4: <? $id= $_GET['id']; ?> Nesta parte o código busca o total de fotos no banco de acordo com o $id recebido ($id= 1 ou $id = 4). Pois aí está meu problema, na primeira página tudo 100%, mas quando acesso a 2ª e 3ª página da paginação ele não carrega o valor do $id consigo, simplesmente o perde. $sql = "SELECT COUNT( 'id_ft' ) AS numero FROM fotos WHERE ((id_cf = $id) AND ( upload_ft =1))" ; Na página 1 aparece assim a url, exemplo: galeriacasamento.php?id=1 Na segunda página assim: galeriacasamento.php?pag=2 Acho que para funcionar coretamente deveria ser assim: galeriacasamento.php?pag=2&id=1 Mas não consegui implementar, não sei mexer no código paginacaoClasse.php Segue abaixo o código: <?php /* PaginacaoClass - Classe PHP de Montagem de Navegadores de Página ---------------------------------------------------------------- Autor: Fernando Val <fernando.val@gmail.com> Descrição: PaginacaoClass é uma classe em PHP para fazer os links de navegação de página no formato "Anterior <primeira> ... <n-3> <n-2> <n-1> N <n+1> <n+2> <n+3> ... <ultima> Próxima". A classe é totalmente personalizável, permitindo que o programador defina os seguintes parâmetros: - Link do site; - Variável GET de definição da página; - Número de páginas navegáveis laterais a página atual; - Texto usado para o separador da primeira e últiam páginas dos navegadores de páginas; - Texto da link "Anterior"; - Texto do link "Próxima"; - Classes HTML dos links, página atual e separadores. Observações: - Esta classe foi totalmente escrita no idioma Português do Brasil, inclusive seu nome, propriedades e funções. Não há interesse do autor em portar nada para outros idiomas. Interessados em traduzir a documentação e instruções para outros idiomas são bem vindos. Caso alguém escreva alguma documentação em outro idioma, favor avisar o autor para que o documento e seus devidos créditos sejam anexados ao projeto; - O autor agradece quaisquer comentários e sugestões de melhorias. Licença: Esta classe é Open Source e distribuida sob a licença GPL. Histórico: 1.00 - 21/Mar/2007 - Primeira versão da classe */ /* Exemplo de código PHP de como usar esta classe ---------------------------------------------- include('PaginacaoClass.php'); $Paginacao = new Paginacao; $pag_atual = empty($_GET['pag']) ? 1 : (int)$_GET['pag']; $sql = 'SELECT COUNT(1) FROM minhatabela'; $res = mysql_query($sql); $reg = mysql_fetch_row($res); $num_reg_lin = 10; $ultima_pag = ceil((int)$reg[0] / $num_reg_lin); // imprime os registros print $Paginacao->MontarPaginacao($pag_atual, $ultima_pag); */ class Paginacao { // Propriedades da classe var $PaginaAtual = 2; // Define a página atual var $UltimaPagina = 1; // Define a quantidade de páginas var $NumPgLaterais = 3; // Define quantas páginas serão navegáveis para os lados a partir da página atual var $SiteLink = ''; // Define o hyperlink dos navegadores var $PageGET = 'pag'; // Define a variável do GET que receberá o número da página para navegar var $HTMLPaginacao = ''; // Código HTML com a navegação var $TextoSeparador = '...'; // Texto a ser mostrado como separador para primeira e última páginas var $ClassePaginaAtual = 'paginacao_atual'; // Classe CSS usada para a LABEL de página atual var $ClasseNavegadores = 'paginacao_navegar'; // Classe CSS usada para os LINKs de navegação var $ClasseSeparadores = 'paginacao_atual'; // Classe CSS usada para os LABELS dos separadores de primeira e última páginas var $TextoAnterior = 'Anterior'; // Texto a ser mostrado no link para a página anterior var $TextoProxima = 'Próxima'; // Texto a ser mostrado no link para a príxima página function MontarPaginacao($pgatual = 0, $pgfim = 0) { // Verifica se a página atual e/ou a última foram passadas por parâmetro na chamada if ($pgatual) $this->PaginaAtual = $pgatual; if ($pgfim) $this->UltimaPagina = $pgfim; // Monta o link if (strpos($this->SiteLink, '?') === FALSE) { $link = $this->SiteLink . '?' . $this->PageGET . '='; } else { $link = $this->SiteLink . '&' . $this->PageGET . '='; } // Verifica se tem navagação pra página anterior $anterior = ''; if ($this->PaginaAtual > 1) { $anterior = '<A HREF="'.$link.($this->PaginaAtual - 1).'" CLASS="'.$this->ClasseNavegadores.'">'.$this->TextoAnterior.'</A> '; } // Verifica se mostra navegador para primeira página $primeira = ''; if (($this->PaginaAtual - ($this->NumPgLaterais + 1) > 1) && ($this->UltimaPagina > ($this->NumPgLaterais * 2 + 2))) { $primeira = '<A HREF="'.$link.'1" CLASS="'.$this->ClasseNavegadores.'">1</A> <LABEL CLASS="'.$this->ClasseSeparadores.'">'.$this->TextoSeparador.'</LABEL> '; $dec = $this->NumPgLaterais; } else { $dec = $this->PaginaAtual; while ($this->PaginaAtual - $dec < 1) { $dec--; } } // Verifica se mostra navegador para última página $ultima = ''; if (($this->PaginaAtual + ($this->NumPgLaterais + 1) < $this->UltimaPagina) && ($this->UltimaPagina > ($this->NumPgLaterais * 2 + 2))) { $ultima = '<LABEL CLASS="'.$this->ClasseSeparadores.'">'.$this->TextoSeparador.'</LABEL> <A HREF="'.$link.$this->UltimaPagina.'" CLASS="'.$this->ClasseNavegadores.'">'.$this->UltimaPagina.'</A>'; $inc = $this->NumPgLaterais; } else { $inc = $this->UltimaPagina - $this->PaginaAtual; } // Se houverem menos páginas anteriores que o definido, tenta colocar mais páginas para a frente if ($dec < $this->NumPgLaterais) { $x = $this->NumPgLaterais - $dec; while ($this->PaginaAtual + $inc < $this->UltimaPagina && $x > 0) { $inc++; $x--; } } // Se houverem menos páginas seguintes que o definido, tenta colocar mais páginas para trás if ($inc < $this->NumPgLaterais) { $x = $this->NumPgLaterais - $inc; while ($this->PaginaAtual - $dec > 1 && $x > 0) { $dec++; $x--; } } // Monta o conteúdo central do navegador $atual = ''; for ($x = $this->PaginaAtual - $dec; $x <= $this->PaginaAtual + $inc; $x++) { if ($x == $this->PaginaAtual) { $atual .= '<LABEL CLASS="'.$this->ClassePaginaAtual.'">'.$x.'</LABEL> '; } else { $atual .= '<A HREF="'.$link.$x.'" CLASS="'.$this->ClasseNavegadores.'">'.$x.'</A> '; } } // Verifica se mostra navegador para próxima página $proxima = ''; if ($this->PaginaAtual < $this->UltimaPagina) { $proxima = ' <A HREF="'.$link.($this->PaginaAtual + 1).'" CLASS="'.$this->ClasseNavegadores.'">'.$this->TextoProxima.'</A>'; } return $this->HTMLPaginacao = $anterior.$primeira.$atual.$ultima.$proxima; } } ?> Tentei com session mas não tive êxito.Preciso muito da ajuda de vocês, mais uma vez Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
kornetu 0 Denunciar post Postado Abril 6, 2010 Depois de muitas tentativas resolvi o problema Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 6, 2010 Explique como resolveu. Pode ser útil para outros usuários do fórum. :thumsbup: Compartilhar este post Link para o post Compartilhar em outros sites