Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom, estou quebrando a cabeça aqui com um detalhe que está me escapando e não consigo resolver:
Testando alguns codigos, peguei o exemplo de paginação em php abaixo que funciona perfeitamente, o porém é que exibe o resultado da paginação ao lado da primeira coluna de resultados, e não no final da página como é esperado.
Imagino que seja algo relativo ao css, mas não identifico onde pode estar o problema:
código php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Projeto Criador</title>
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div id="tudo">
<?php
echo "<div id='wrapper'><div id='header'>";
include ('topo.php');
echo "</div><div id='faux'>";
echo "<div id='leftcolumn'></div>";
echo "<div id='content'>";
echo "<div id='produtos'>";
defined('DSN') or define('DSN', 'mysql:host=localhost;dbname=testes');
defined('USUARIO') or define('USUARIO', 'user');
defined('SENHA') or define('SENHA', '1234');
class Paginacao_PDO
{
public $paginador = 'pag';
private $solicitador;
public $sql;
public $limite = 15;
public $quantidade = 5;
public function __construct()
{
$this->solicitador = $_REQUEST["{$this->paginador}"];
}
private function conexao()
{
$conexao = new Conexao();
$con = $conexao->conexao;
return $con;
}
public function resultado()
{
$this->resultado = $this->conexao()->query(str_replace('*', 'COUNT(*)', $this->sql));
$this->numeroResultados = $this->resultado->fetchColumn();
return $this->numeroResultados;
}
public function paginasTotais()
{
$paginasTotais = ceil($this->resultado() / $this->limite);
return $paginasTotais;
}
public function paginaAtual()
{
if (isset($this->solicitador) && is_numeric($this->solicitador)) {
$this->paginaAtual = (int) $this->solicitador;
} else {
$this->paginaAtual = 1;
}
if ($this->paginaAtual > $this->paginasTotais()) {
$this->paginaAtual = $this->paginasTotais();
}
if ($this->paginaAtual < 1) {
$this->paginaAtual = 1;
}
return $this->paginaAtual;
}
private function offset()
{
$offset = ($this->paginaAtual() - 1) * $this->limite;
return $offset;
}
public function sql()
{
$sql = $this->sql . " LIMIT {$this->limite} OFFSET {$this->offset()} ";
return $sql;
}
public function imprimeBarraNavegacao()
{
if($this->resultado() > 0) {
if ($this->paginaAtual() > 1) {
echo " <a href='?" . $this->paginador . "=1". $this->reconstruiQueryString($this->paginador) . "'>Primeira</a> ";
$anterior = $this->paginaAtual() - 1;
echo " <a href='?" . $this->paginador . "=" . $anterior .$this->reconstruiQueryString($this->paginador) . "'>Anterior</a> ";
}
for ($x = ($this->paginaAtual() - $this->quantidade); $x <
(($this->paginaAtual() + $this->quantidade) + 1); $x++) {
if (($x > 0) && ($x <= $this->paginasTotais())) {
if ($x == $this->paginaAtual()) {
echo " [<b>$x</b>] ";
} else {
echo " <a href='?" . $this->paginador . "=" . $x
. $this->reconstruiQueryString($this->paginador) . "'>$x</a> ";
}
}
}
if ($this->paginaAtual() != $this->paginasTotais()) {
$paginaProxima = $this->paginaAtual() + 1;
echo " <a href='?" . $this->paginador . "=" . $paginaProxima
. $this->reconstruiQueryString($this->paginador) . "'>Próxima</a> ";
echo " <a href='?" . $this->paginador . "=" . $this->paginasTotais()
. $this->reconstruiQueryString($this->paginador) . "'>Última</a> ";
}
}
}
public function reconstruiQueryString($valoresQueryString) {
if (!empty($_SERVER['QUERY_STRING'])) {
$partes = explode("&", $_SERVER['QUERY_STRING']);
$novasPartes = array();
foreach ($partes as $val) {
if (stristr($val, $valoresQueryString) == false) {
array_push($novasPartes, $val);
}
}
if (count($novasPartes) != 0) {
$queryString = "&".implode("&", $novasPartes);
} else {
return false;
}
return $queryString; // nova string criada
} else {
return false;
}
}
}
class Conexao
{
private $_usuario;
private $_senha;
private $_dsn;
public function __construct()
{
$this->defineUsuario(USUARIO);
$this->defineSenha(SENHA);
$this->defineDSN(DSN);
$this->abreConexao();
}
public function defineUsuario($usuario)
{
$this->_usuario = $usuario;
}
public function defineSenha($senha)
{
$this->_senha = $senha;
}
public function defineDSN($dns)
{
$this->_dsn = $dns;
}
public function abreConexao()
{
$this->conexao = new PDO($this->_dsn, $this->_usuario, $this->_senha);
$this->conexao->query("SET NAMES utf8");
}
public function fechaConexao()
{
$this->_conexao = null;
}
}
$conexao = new Conexao();
$conexao = $conexao->conexao;
$paginacao = new Paginacao_PDO();
$paginacao->sql = "select * from produtos";
//$paginacao->imprimeBarraResultados();
$res = $conexao->query($paginacao->sql());
while($r = $res->fetch(PDO::FETCH_OBJ)) {
print "<div class='cproduto'>";
print "<center><b><a href='detalhe.php?id=".$r->id. "'><img src='imagens/".$r->imgmini."' border=0 width='50%' height='50%'><br>" .$r->nome ."</a></b><br/>".substr($r->descricao, 0, 50)."...</br>";
print "R$ ".$r->precovenda." <a href='#'><img src='carrinho.png' alt='Adicionar ao carrinho' border='0'></a></center></div><p>";
}
echo "</div>";
$paginacao->imprimeBarraNavegacao();
//echo "</div><div id='rightcolumn'>";
//include ('modulodir.php');
//echo "</div>";
echo "</div><div id='footer'>";
include ('rodape.php');
echo "</div>";
?>
</div>
</body>
e o css:
{ padding: 0; margin: 0; }
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 13px;
}
#wrapper {
margin: 0 auto;
width: 922px;
}
#faux {
margin-bottom: 0px;
overflow: auto;width: 902px;
padding: 10px;
height: auto;
margin: 0px 0px 0px 0px;
background: #FFF;
float: center;
}
#leftcolumn {
display: inline;margin: 10px;
padding: 0px;
width: 195px;
height: auto;
float: left;
}
#content {
float: left;margin: 10px 13px;
padding: 0px;
width: 510px;
height: auto;
display: inline;
position: relative;
}
#rightcolumn {
display: inline;
position: relative;margin: 10px 10px 10px 0px;
padding: 0px;
width: 195px;
height: auto;
float: right;
}
#footer {
width: 902px;
clear: both;background: #FFF;
margin: 0px 0px 0px 0px;
padding: 10px;
}#menu ul {
padding:0px;
margin:5px;
width: 100%;
background-color:#FFF;
list-style:none;
}#menu ul li a {
padding: 2px 5px;
/*float:center;*/
/* visual do link */
background-color:#F93;
color: #030;
text-decoration: none;
border-bottom:3px solid #F60;
}
#menu ul li a:hover {
background-color:#030;
color: #FFF;
border-bottom:3px solid #090;
}
.rodape {
font-size: 10px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: normal;
padding: 3px;
color: #CCC;
}
#produtos {
display: block;
width: 100%;
}
.cproduto {
display: block;
Float : Left;
width: 150px;
height: 220px;
}
imagem de como fica:
/applications/core/interface/imageproxy/imageproxy.php?img=http://img4.imageshack.us/img4/4548/exemploc.jpg&key=be2c6b226ed9cdceeea3e641ad638f0778d30f96edece602fc8c3154fd424aec" alt="exemploc.jpg" />
Carregando comentários...