Ir para conteúdo

POWERED BY:

Arquivado

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

marceltk

Paginador Simples - PHP MySql

Recommended Posts

Pessoal Fiz correndo o script, e não dei mta bola pra ficar explicavel, rs, resolveu meu problema com paginação, espero que ajude aos leigos que procuram um paginador simples.

 

segue o código

 

<?
Class Paginator{

 public $page;
 public $maxQtd;
 public $qtd;
 public $idNode;

 function __construct($idNode) {
   $this->table = "SUA_TABELA NO BANCO";
   $this->idNode = $idNode;
   $this->conn = @mysql_connect("SEU_SERVIDOR","SEU_USUARIO","SUA_SENHA") or die ("ERRO NA CONEXÃO!");
   mysql_select_db("SEU_BANCO_DE_DADOS", $this->conn);
   $this->qtd = $this->totalRows();
 }

 function totalRows() {
   $sql = "SELECT ID FROM cms_item WHERE ID_NODE = ". $this->idNode;
   $rs = mysql_query($sql, $this->conn);
   $qtd = mysql_num_rows($rs);

   return $qtd;
 }

 function getObjects($max = 10, $page = false, $link = false) {
   $min = 0;
   if($page) {
     $min = $page * $max;
   }
   $this->max = $max; //seta quantos registros irá mostrar
   $sql = mysql_query("SELECT * FROM cms_item WHERE ID_NODE = ". $this->idNode ." LIMIT ". $min .",". $max);
   while($Data = mysql_fetch_object($sql)) {
     $itens[] = $Data;
   }
   $this->page = $page;
   return $itens;
 }

 function getPaginatorView() {
   $total = $this->qtd;
   if($this->max > 0) {
     $pages = ceil($total / $this->max);
     $pages < $this->page ? exit("Página não encontrada!") : false;//verifica se a pagina existe
     if($pages > 1) {
       $paginator = "
       <style type='text/css'>
         #paginator {padding:5px; background:#f5f5f5;}
         #paginator {font-size:12px; font-family:arial, verdana; color:#222;}
         #paginator span {background:#ddd; border:1px solid #ccc; margin:2px; padding:2px;}
         #paginator a{text-decoration:none; color:#111; font-weight:bold;}
         #paginator a:hover{text-decoration:underline;}
         #paginator .selected {background:#fff;}
       </style>";
       $paginator .= "<div id='paginator'>";

       if($this->page > 0) {
         $paginator .= "<a href=\"?page=". ($this->page - 1) ."\">Anterior</a> ";
       } else {
         $paginator .= "Anterior ";
       }        

       for($i = 0; $i < $pages; $i++) {
         $class = null;
         if($i == $this->page) {
           $class = "selected";
         }
         $paginator .= "<span class='". $class ."'><a href=\"?page=". $i ."\">". ($i +1) ."</a></span>";
       }

       if(($this->page + 1) < $pages) {
         $paginator .= "<a href=\"?page=". ($this->page + 1) ."\"> Próximo</a>";
       } else {
         $paginator .= " Próximo";
       }

       $paginator .= "</div>";
     }
   }
   return $paginator;
 }

}

$idNode = 10; //Uso isso pq é o ID relacionado na tabela Item, uso tabelas todas relacionadas
$page = $_GET['page'];//pego a pagina atual

$Paginator = new Paginator($idNode);
$itens = $Paginator->getObjects(5, $page, 0);

if(is_array($itens)) {
 print "<ul>";
 foreach($itens as $Item) {
   print "<li>" . $Item->NOME . "</li>";
 }
 print "</ul>";
}

print $Paginator->getPaginatorView();
?>
<style>
 ul {margin:0px; padding:0px; font-family:arial; font-size:11px; font-weight:bold;}
 ul li{padding:3px; border-bottom:1px dotted #444;}
</style>

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse codigo vai onde?

vai junto com a lista que eu fiz pra exibir os resultados???

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.