Como Conectar e Fazer paginação correta em PDO PHP MySql

Enviada por Luiz Antonio Duarte Estevam Franco 
Luiz Antonio Duarte Estevam Franco
Como Conectar e Fazer paginação correta em PDO PHP MySql
27 de January de 2017 às 10:07PM
Olá pessoal tenho este script pdo em minha pagina

<?php
include_once "/classes/mysqlpdo.php";

//conexão com o banco de dados
// mysql_connect("127.0.0.1","root","");
// mysql_select_db("mybd_bd");

// mysql_query("SET NAMES 'utf8'");
// mysql_query('SET character_set_connection=utf8');
// mysql_query('SET character_set_client=utf8');
// mysql_query('SET character_set_results=utf8');

//seta a quantidade de itens por página, neste caso, 2 itens
$limite = 3;

# 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 produtos LIMIT ".$inicio. ", ". $limite;

try {

$query = $pdo->prepare($sql);
$query->execute();
} catch (PDOexception $error_sql){

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



?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<html>
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="styles/indexof.css" />
<style>
.numero{
text-decoration: none;
background: #2A85B6;
text-align: center;
padding: 3px 0;
display: block;
margin: 0 2px;
float: left;
width: 20px;
color: #fff;
}
.numero:hover, .numativo, .controle:hover{
background: #1B3B54;
}
.controle{
text-decoration: none;
background: #2A85B6;
text-align: center;
padding: 3px 8px;
display: block;
margin: 0 3px;
float: left;
color: #fff;
}
</style>

<!--Fireworks CS6 Dreamweaver CS6 target. Created Tue Jan 24 16:47:18 GMT-0200 2017-->
</head>
<body bgcolor="#ffffff" marginheight="0" marginwidth="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0">
<table style="display: inline-table;" border="0" cellpadding="0" cellspacing="0" width="1260">
<!-- fwtable fwsrc="buttoncontratar.fw.png" fwpage="Page 1" fwbase="contratar.jpg" fwstyle="Dreamweaver" fwdocid = "742308039" fwnested="0" -->
<tr>
<td><img src="layout/spacer.gif" width="239" height="1" alt=""></td>
<td><img src="layout/spacer.gif" width="870" height="1" alt=""></td>
<td><img src="layout/spacer.gif" width="151" height="1" alt=""></td>
<td><img src="layout/spacer.gif" width="1" height="1" alt=""></td>
</tr>

<tr>
<td colspan="3"><img name="contratar_r1_c1" src="layout/contratar_r1_c1.jpg" width="1260" height="420" usemap="#m_contratar_r1_c1" alt=""></td>
<td><img src="layout/spacer.gif" width="1" height="420" alt=""></td>
</tr>
<tr>
<td rowspan="2"><img name="contratar_r2_c1" src="layout/contratar_r2_c1.jpg" width="239" height="704" usemap="#m_contratar_r2_c1" alt=""></td>
<td valign="top" bgcolor="#ffffff"><table width="800" border="0">
<tr class="titulotable" bgcolor="#CCCCCC">
<td width="127"><div align="center"><strong>ÍTEM</strong></div></td>
<td width="415"><div align="center"><strong>PRODUTO/SERVIÇO</strong></div></td>
<td width="230"><div align="center"><strong>VALOR</strong></div></td>
<td width="10"><div align="center"></div></td>
</tr><?php

//exibe os produtos selecionados
while($linha = $query->fetch(PDO::FETCH_ASSOC)){


?>
<tr valign="top" style="color:#8C0000">
<td><a href="detalhes.php?idproduto=<?php echo $linha['idproduto']; ?>"><img src="imgpeq/<?php echo $linha['foto']; ?>" width="125" height="125" alt="<?php echo $linha['produto']; ?> " longdesc="detalhes.php?idproduto=<?php echo $linha['idproduto']; ?>"></a></td>
<td align="center" valign="middle"><strong><?php echo $linha['produto']; ?></strong></td>
<td align="center" valign="middle"><strong>R$ <?php echo $linha['valor']; ?>,00</strong></td>
<td align="center" valign="middle"><a href="detalhes.php?idproduto=<?php echo $linha['idproduto']; ?>"><img src="buttons/botaovejamais.jpg" alt="Clique Aqui e Veja Mais Detalhes!!!" width="64" height="54"></a></td>
</tr>
<tr><?php

}

# seleciona o total de registros
$sql_Total = 'SELECT idproduto FROM produtos';

try {

$query_Total = $pdo->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();

}


?>
<td align="left"><?php //exibe a paginação
if($pg > 1) { ?>
<a href="contratar.php?pg=<?php echo ($pg-1) ?>"><img src="navegacao/buttonanterior.jpg" width="140" height="31" alt="Anterior"></a><?php ;}?></td>
<td align="center"><?php for($i = 1; $i < $qtdPag + 1; $i++) {
$ativo = ($i == $pg) ? 'numativo' : '';
echo "<a href='contratar.php?pg=".$i."' class='numero ".$ativo."'> ".$i." </a>";
}
?></td>
<td colspan="2" align="right"><?php if($pg < $numPaginas) {?><a href="contratar.php?pg=<?php echo ($pg+1) ?>"><img src="navegacao/buttonproxima.jpg" width="140" height="31" alt="Próxima"></a><?php ;}?></td>
</tr>
</table>


======================

Só que está dando o seguinte erro na linha 21 da pagina


(!)Parse error:syntax error, unexpected '$inicio(T_VARIABLE) in c:\wamp\www\dominio\contratar.php on line 27


Como resolveria este erro de conexão e está correto a forma que está colocada este script de paginação em pdo php já que sou iniciante

Fico no aguardo e desde já agradeço - obrigado
Eduardo Molina
Re: Como Conectar e Fazer paginação correta em PDO PHP MySql
18 de February de 2017 às 02:01PM
Luiz aconselho-te a procurar informações sobre algum framework que praticamente lhe da isto pronto.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.