Array
(
)

Paginação PDO

PHP
Robert Camargo
   - 01 jun 2014

está dando esse erro:
Erro ao retornar os Dados.SQLSTATE[42000]: Syntax error or access violation: 1327 Undeclared variable: $inicio
#Código<?php
//inclui o arquivo config(arquivo de conexão com o banco de dados)
include "config.php";
//Limita o número de registros a serem mostrados por página
$limite = 10;
//Se pg não existe atribui 1 a variável pg
$pg = (isset($_GET['pg'])) ? (int)$_GET['pg'] : 1 ;
//Atribui a variável inicio o inicio de onde os registros vão ser mostrados por página, exemplo 0 à 10, 11 à 20 e assim por diante
$inicio = ($pg * $limite) - $limite;
//seleciona os registros do banco de dados pelo inicio e limitando pelo limite da variável limite
$sql = 'SELECT * FROM sr_imoveis ORDER BY imovelTitulo ASC LIMIT $inicio, $limite';
try{
$query = $conecta->prepare($sql);
$query->execute();

}catch(PDOexception $error_sql){
echo 'Erro ao retornar os Dados.'.$error_sql->getMessage();
}
while($linha = $query->fetch(PDO::FETCH_ASSOC)){

echo '<ul style="font:14px Verdana, Geneva, sans-serif; color:#333; list-style:none;">';
echo '<li>'.$imovelID = $linha["imovelID"].'</li>';
echo '<li>'.$imovelTitulo = $linha["imovelTitulo"].'</li>';
echo '</ul>';
}
//seleciona o total de registros
$sql_Total = 'SELECT imovelID FROM sr_imoveis';

try{
$query_Total = $conecta->prepare($sql_Total);
$query_Total->execute();

$query_result = $query_Total->fetchAll(PDO::FETCH_ASSOC);

//conta quantos registros tem no banco de dados
$query_count = $query_Total->rowCount(PDO::FETCH_ASSOC);

//calcula o total de paginas a serem exibidas
$qtdPag = ceil($query_count/$limite);

}catch(PDOexception $error_Total){
echo 'Erro ao retornar os Dados. '.$error_Total->getMessage();
}
//Cria os links para navegação das paginas
echo ' <a href="paginacao.php?pg=1">PRIMEIRA PÁGINA</a>  ';
if($qtdPag > 1 && $pg<= $qtdPag){
for($i=1; $i <= $qtdPag; $i++){

if($i == $pg){

echo $i;
}else{

echo "<a href='paginacao.php?pg=$i'>".$i."</a>";
}
}
}
echo "   <a href=\"paginacao.php?pg=$qtdPag\">ÚLTIMA PÁGINA</a> ";
?>

Robert Camargo
   - 01 jun 2014

Resolvido faltava concatenar a linha sql

#Código<?php
//inclui o arquivo config(arquivo de conexão com o banco de dados)
include "config.php";
//Limita o número de registros a serem mostrados por página
$limite = 10;
//Se pg não existe atribui 1 a variável pg
$pg = (isset($_GET['pg'])) ? (int)$_GET['pg'] : 1 ;
//Atribui a variável inicio o inicio de onde os registros vão ser mostrados por página, exemplo 0 à 10, 11 à 20 e assim por diante
$inicio = ($pg * $limite) - $limite;

//seleciona os registros do banco de dados pelo inicio e limitando pelo limite da variável limite
$sql = "SELECT * FROM sr_imoveis ORDER BY imovelTitulo DESC LIMIT ".$inicio. ",". $limite;

try{
$query = $conecta->prepare($sql);
$query->execute();

}catch(PDOexception $error_sql){
echo 'Erro ao retornar os Dados.'.$error_sql->getMessage();
}

while($linha = $query->fetch(PDO::FETCH_ASSOC)){

echo '<ul style="font:14px Verdana, Geneva, sans-serif; color:#333; list-style:none;">';
echo '<li>'.$imovelID = $linha["imovelID"].'</li>';
echo '<li>'.$imovelTitulo = $linha["imovelTitulo"].'</li>';
echo '</ul>';

}
//seleciona o total de registros
$sql_Total = 'SELECT imovelID FROM sr_imoveis';

try{
$query_Total = $conecta->prepare($sql_Total);
$query_Total->execute();

$query_result = $query_Total->fetchAll(PDO::FETCH_ASSOC);

//conta quantos registros tem no banco de dados
$query_count = $query_Total->rowCount(PDO::FETCH_ASSOC);

//calcula o total de paginas a serem exibidas
$qtdPag = ceil($query_count/$limite);

}catch(PDOexception $error_Total){
echo 'Erro ao retornar os Dados. '.$error_Total->getMessage();
}

//Cria os links para navegação das paginas
echo ' <a href="paginacao.php?pg=1">PRIMEIRA PÁGINA</a>  ';
if($qtdPag > 1 && $pg<= $qtdPag){
for($i=1; $i <= $qtdPag; $i++){

if($i == $pg){

echo $i;
}else{

echo "<a href='paginacao.php?pg=$i'>".$i."</a>";
}
}

}
echo "   <a href=\"paginacao.php?pg=$qtdPag\">ÚLTIMA PÁGINA</a> ";
?>

Marcio Araujo
   - 04 jun 2014

engraçado, as vezes são pequenos detalhes, ja passei foi bastante tempo caçando problemas, até hoje, hehehe