Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde!!
Estou utilizando uma classe de 3º para paginação (CriaPaginacao.php)
criei uma classe para listar os dados (ListaModelo.php)
Na pagina modelo.php onde será impresso os dados, foi instanciado a classe
até ai td certo, ela imprime os dados e os numeros da paginação, porem
ao clicar p/ proxima pagina não é enviado a URL.
Se alguem puder dar um Help .. Obrigado!
CriaPaginacao.php
<?php
include_once("MySqlConn.php");
class criaPaginacao extends MySqlConn{
private $ida, $param;
private $maxPage, $maxLink, $numeroPaginas;
private $sqlA, $sqlB;
private $fileName, $nomeArquivoHTML;
private $temp;
private $passoA, $passoB;
private $qrA, $qrB;
private $totRegA, $totRegB;
private $resultadoTotal, $resultadoParcial, $resultadoDiv, $numeroInt;
private $pagAtual, $proxPag, $ultPag, $pagAnt;
private $regInicial;
private $dadosGerados;
private $registroFinal;
public function setParametro($cod){
$this->ida = $cod;
}
public function setFileName($file){
$this->fileName = $file;
}
public function setInfoMaxPag($max){
$this->maxPage = $max;
}
public function setMaximoLinks($max){
$this->maxLink = $max;
}
public function setSQL($qr){
$this->sqlA = $qr;
}
public function setContador($cont){
$this->registroFinal = $this->param + $cont;
}
public function setNomeArquivoHTML($arq){
$this->nomeArquivoHTML = $arq;
}
/**********************************************************************************************************/
protected function iniciaPaginacao(){
if (empty($this->ida)){
$this->param = 0;
} else {
$this->temp = $this->ida;
$this->passoA = $this->temp - 1;
$this->passoB = $this->passoA * $this->maxPage;
$this->param = $this->passoB;
}
//$parametroTemp = $this->parametro - 1;
$this->sqlB = $this->sqlA." LIMIT ".$this->param.",".$this->maxPage;
//cria as conexões
$this->qrA = self::ExecutaSql($this->sqlA);
$this->qrB = self::ExecutaSql($this->sqlB);
$this->totRegA = self::CountData($this->qrA);
$this->totRegB = self::CountData($this->qrB);
//carrega as variáveis
$this->resultadoTotal = $this->totRegA;
$this->resultadoParcial = $this->totRegB;
$this->resultadoDiv = $this->resultadoTotal / $this->maxPage;
$this->numeroInt = (int)$this->resultadoDiv;
if ($this->numeroInt < $this->resultadoDiv){
$this->numeroPaginas = $this->numeroInt + 1;
}else{
$this->numeroPaginas = $this->resultadoDiv;
}
$this->pagAtual = $this->param / $this->maxPage + 1;
$this->regInicial = $this->param + 1;
$this->pagAnt = $this->pagAtual - 1;
$this->proxPag = $this->pagAtual + 1;
}
protected function results(){
$this->dadosGerados = self::ListQuery($this->qrB);
return $this->dadosGerados;
}
/**********************************************************************************************************/
public function geraNumeros(){
if ($this->ida > 1) {
//se trocar o $this->fileName por ?pagina=modelo ... a bagaça funfa
echo "<li><a href=\"".$this->fileName."&pg=".$this->pagAnt."\"
title=\"".$this->pagAnt."\">Anterior</a>\n<li>";
}
if ($this->temp >= $this->maxLink){
if ($this->numeroPaginas > $this->maxLink){
$n_maxlnk = $this->temp + 6;
$this->maxLink = $n_maxlnk;
$n_start = $this->maxLink - 6;
$lnk_impressos = $n_start;
}
}
//mostra os números das páginas
while(($lnk_impressos < $this->numeroPaginas) and ($lnk_impressos < $this->maxLink)){
$lnk_impressos ++;
// Mostra a página atual sem o link
if ($this->pagAtual == $lnk_impressos){
echo "<li>".$lnk_impressos ."\n</li>";
//mostra os números das
}else{
echo "<li><a href=\"".$this->fileName."&pg=".$lnk_impressos."\"
title=\"".$lnk_impressos."\">".$lnk_impressos."</a></li>\n";
}
}
// mostra o link PRÓXIMO >>
if ($this->registroFinal < $this->resultadoTotal){
echo"<li><a href=\"".$this->fileName."&pg=".$this->proxPag."\"
title=\"".$this->proxPag."\">Próximo</a></li>\n";
}
}
public function getTime(){
list($sec, $usec) = explode(" ",microtime());
return ($sec + $usec);
}
}
?>
ListaModelo.php
<?php
include_once ("CriaPaginacao.php");
Class ListaModelo extends CriaPaginacao{
// Variaveis Padrão para uso da Classe CriaPaginacao
private $strSessao, $strNumPagina;
private $strPaginas, $strUrl;
// Metodo Padrão para uso da Classe CriaPaginacao
public function setNumPagina($x){
$this->strNumPagina = $x;
}
// Metodo Padrão para uso da Classe CriaPaginacao
public function setUrl($x){
$this->strUrl = $x;
}
// Metodo Padrão para uso da Classe CriaPaginacao
public function setSessao($x){
$this->strSessao = $x;
}
// Metodo Padrão para uso da Classe CriaPaginacao
public function getPaginas(){
return $this->strNumPagina = $x;
}
// Metodo para gerar a lista de Modelos
public function GeraListaModelo(){
$sql = "SELECT IdModelo, ImgPerfilModelo, NomeModelo FROM modelo ORDER BY RAND()";
$this->setParametro($this->strNumPagina);//setando o numero de pagina atual
$this->setFileName($this->setUrl); // envia a URL
$this->setInfoMaxPag(1);//Qtd de Informacoes(modelos) por pagina
$this->setMaximoLinks(6);//Qtd de links (na pagina)
$this->setSQL($sql);//Executando a Query
self::iniciaPaginacao(); // Iniciando a Paginacao
$contador = 0; // conatdor p/ gerar o numero de paginas
while($modelo = self::results()){
$contador++;
echo "
<div id=\"modelo\">
<a href=\"#\">
<img src=\"modelos/".$modelo["ImgPerfilModelo"]."\" border=\"0\"
width=\"100\" height=\"100\" alt=\"".$modelo["NomeModelo"]."\">
<br />
<span class=\"white\">".$modelo["NomeModelo"]."</span>
</a>
</div>
";
self::setContador($contador);
}
}
}
?>
modelo.php
<?php
include_once("classe/ListaModelo.php");
$lista = new ListaModelo();
$lista->setNumPagina($_GET["pg"]);
$lista->setUrl("?pagina=modelo"); //NAO ENVIA A URL
$lista->setSessao("");
?>
<h2>MODELOS</h2><br />
<span class="gray">
Clique na foto para obter mais detalhes sobre a Modelo.
</span>
<br />
<?php $lista->GeraListaModelo(); ?>
<div id="paginacao">
<ul><?php $lista->geraNumeros(); ?></ul>
</div>Carregando comentários...