Paginador Simples - PHP MySql
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>Discussão (1)
Carregando comentários...