Ir para conteúdo

POWERED BY:

Arquivado

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

Luan2016

Problema na paginação de resultados

Recommended Posts

olá, sou iniciante nesta areá, estou desenvolvendo um site imobiliário e estou com um problema na paginação de resultados do filtro, o código esta fazendo a paginação, só que quando clico na primeira pagina estou perdendo o resultado da pesquisa, e retorna todo o resultado que tem no banco, o script esta abaixo, se alguém puder me ajudar por favor .

 

<div id="pagina">
<h1>categoria</h1>
<table width="100%" border="0" cellpadding="3" cellspacing="2" bordercolor="#666666";>
<tr style="color:#005789; font-variant:small-caps; font:14px 'Trebuchet MS', Arial, Helvetica, sans-serif;">
<td height="30" align="center" bgcolor="e0e0e0"><strong>Ilustração</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Operação</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Local/M²</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Comodos</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Data do Anúncio</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Referência</strong></td>
<td align="center" bgcolor="e0e0e0"><strong>Acessar</strong></td>
</tr>
<?php
include"Connections/config.php";
$pg = "$_GET[pag]";
if($pg >= '1'){
$pg = $pg;
}else{
$pg = '1';
}
$quantidade = '1'; //RESULTADOS POR PÁGINA
$inicio = ($pg * $quantidade) - $quantidade;
$tipo = $_POST['tipo'];
$categoria = $_POST['categoria'];
$cidade = $_POST['cidade'];
$bairro = $_POST['bairro'];
$dataVal = date('Y-m-d H:m:s');
$sql = 'SELECT * FROM up_imoveis WHERE imovelTermino >= :dataVal AND imovelNegocio LIKE :tipo AND imovelTipo LIKE :categoria
AND imovelCidade LIKE :cidade AND imovelBairro LIKE :bairro ORDER BY imovelId DESC LIMIT '.$inicio.','.$quantidade;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal',$dataVal,PDO::PARAM_STR);
$query->bindValue(':tipo','%'.$tipo.'%',PDO::PARAM_STR);
$query->bindValue(':categoria','%'.$categoria.'%',PDO::PARAM_STR);
$query->bindValue(':cidade','%'.$cidade.'%',PDO::PARAM_STR);
$query->bindValue(':bairro','%'.$bairro.'%',PDO::PARAM_STR);
$query->execute();
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
$totalRegistros = $query->rowCount(PDO::FETCH_ASSOC);
echo $resultado[0][0 ];
}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}
foreach($resultado as $res){
$imovelId =$res['imovelId'];
$imovelTipo = $res['imovelTipo'];
$negocio = $res['imovelNegocio'];
$imovelCidade = $res['imovelCidade'];
$valor = $res['imovelValor'];
$thumb = $res['imovelThumb'];
$area = $res['imovelArea'];
$comodos = $res['imovelComodos'];
$data = $res['imovelCadastro'];
$imovelRef = $res['imovelRef'];
echo '<tr>';echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelId.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=90&w=110&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>';
echo'<td align="center" bgcolor="f0f0f0"><a href="index.php?pg=single&imovel='.$imovelId.'">Operação: '.$negocio.'</a></td>';
echo' <td align="center" bgcolor="f0f0f0"><a href="index.php?pg=single&imovel='.$imovelId.'">'.$area.'m² em '.$imovelCidade.'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelId.'">'.$comodos.' Comodos</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelId.'">'.date('d/m/Y',strtotime($data)).'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelId.'">Nº da Ref '.$imovelRef.'</a></td>';
echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelId.'" class="veja_mais">Veja Mais</a></td>';
echo '</tr>';
}
?>
</table>
<!-- inicio botoes -->
<?php
if(isset($_POST['tipo']) && isset($_POST['categoria']) && isset($_POST['cidade']) && isset($_POST['bairro'])){
$sql = "SELECT imovelNegocio FROM up_imoveis WHERE imovelTermino >= '".$dataVal."' AND imovelNegocio = '".$tipo."' AND imovelTipo = '".$categoria."' AND imovelCidade = '".$cidade."' AND imovelBairro = '".$bairro."' ORDER BY imovelId DESC ";
}
if(isset($_POST['tipo']) ){
echo $sql = "SELECT imovelNegocio FROM up_imoveis WHERE imovelTermino >= '".$dataVal."' AND imovelNegocio = '".$tipo."' ";
}
else{
$sql = " SELECT * FROM up_imoveis WHERE imovelTermino >= '".$dataVal."'";
}
try{
$query_pegaAtivos = $conecta->prepare($sql);
$query_pegaAtivos->execute();
echo $totalRegistros = $query_pegaAtivos->rowCount(PDO::FETCH_ASSOC);
}catch(PDOException $e){
echo $e;
}
if($totalRegistros <=$quantidade){}
else{
$paginas = ceil($totalRegistros/$quantidade);
$links = 5;
if(isset($i)){}
else{$i = '1';}
?>
<div class="paginas">
<?php
echo "<a href=\"index.php?pg=filtro&tipo=$tipo&pag=1\">Primeira Página</a>   ";
for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=filtro&pag=$i\">$i</a>   ";
}
}echo "$pag    ";
for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=filtro&pag=$i\">$i</a>   ";
}
}
echo "<a href=\"index.php?pg=filtro&pag=$paginas\">Última página</a>   ";
?>
</div><!-- fecha paginas-->
<?php
}
?>
<!-- botoes paginação -->
<h1>Resualtados de sua pesquisa: <strong style="color:#930"> <?php echo $totalRegistros ;?> imóveis encontrados</strong></h1>
</div><!-- fecha pagina-->

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta ler o seu script:

echo"<a href=\"index.php?pg=filtro&pag=$i\">$i</a>   ";

Em nenhum lugar você está passando os itens do filtro, você terá que passar todos os itens na querystring, ou salvar em uma sessão ou algo do tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo parecido assim ?

echo "<a href=\"index.php?pg=filtro&tipo=$tipo&categoria=$categoria&cidade=$cidade&bairro=$bairro&pag=$paginas\">Última página</a>   ";

e ter que usar uma sessão ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu disse "passar todos os itens na querystring, ou salvar em uma sessão ou algo do tipo", se você vai passar todos os itens na querystring, o uso de sessões para guarda-los seria desnecessário, qual escolher? Ai depende do que você estruturou para o seu sistema.

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.