Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal.. eu desenvolvi um site com uma pesquisa bem completa.. a pesquisa está funcionando perfeito... mas a paginação ta dando erro..
O que acontece.. quando você faz a pesquisa de imóveis a venda de Apartamentos aparece os resultados perfeito.. mas quando você vai e clica na próxima página.. ele mistura tudo.. acho que é por causa da busca mas não to sabendo como fazer para que a página seguinte mostre somente os resultados que foram pesquisados antes..
vou postar a parte da pesquisa e depois a parte da paginação..
PESQUISA:
CODE
<?php
$where = Array();
$min = $_POST['min'];
$max = $_POST['max'];
$min = numero($min);
$max = numero($max);
if ($_POST['negocio'] != 0) // 0 = Todos; 1=venda; 2=aluguel
$where[]= "imo_negocio=".$_POST['negocio'];
if ($_POST['finalidade'] != 0) // 0 = Todos; 1=casa; 2=apto
$where[]= "imo_finalidade=".$_POST['finalidade'];
if ($_POST['tipo'] != 0) // 0 = Todos; 1=casa; 2=apto
$where[]= "imo_tipo=".$_POST['tipo'];
if ($_POST['quartos'] != 0) // 0 = Indefinido;
$where[]= "imo_quartos=".$_POST['quartos'];
if ($_POST['cidade'] != 0) // 0 = Todos; [1,2,3]=Cod da cidade
$where[]= "imo_cidade=".$_POST['cidade'];
if ($min != 0) // 0 = Indefinido;
$where[]= "imo_preco >=".$min;
if ($max != 0) // 0 = Indefinido;
$where[]= "imo_preco <=".$max;
if (count($where) > 0){
$where = " WHERE ".implode(" and ",$where );
} else
$where = "";
$sql = "SELECT * FROM imoveis ".$where ;
$res = mysql_query($sql);
$num = mysql_num_rows($res);
//limita a buca de registros
$tamanho_pagina = 5;
//Verifica a página a ser mostrada e o início
$pagina = 0;
if (isset($_GET['pagina'])) {
$pagina = $_GET['pagina'];
}
if (!$pagina) {
$inicio = 0;
$pagina = 1;
} else {
$inicio = ($pagina - 1) * $tamanho_pagina;
}
//número total de registros $sql_total_reg = $ssql
$sql_total_reg = "SELECT * FROM imoveis ".$where ;
$rs = mysql_query($sql_total_reg);
$num_total_registros = mysql_num_rows($rs);
//calcula total de páginas
$total_paginas = ceil($num_total_registros/$tamanho_pagina);
$sql_lista_imovel = mysql_query("select * from imoveis ".$where." LIMIT ".$inicio.",".$tamanho_pagina."");
$resto = 0;
$cont_cor = 0;
$reg = mysql_query($sql_lista_imovel);
?>
PAGINAÇÃO:
CODE
<?php
mysql_free_result($rs);
//mostro os diferentes índices das páginas, se é que há várias páginas
if ($total_paginas > 1) {
echo "<span class=\"cinza_escuro10\">";
echo "<center>";
if ($pagina > 1) {
$btn_prox = $pagina - 1;
echo "<a href='lista_resultado.php?pagina=".$btn_prox."' class=\"cinza_escuro10\">Anterior</a> ";
echo " - ";
}
for ($i=1;$i<=$total_paginas;$i++) {
if ($pagina == $i) {
//se mostro o índice da página actual, não coloco link
echo "<font size=\"2\" color=\"#FF0000\">";
echo $pagina." ";
echo "</font>";
} else {
//se o índice não corresponde com a página mostrada actualmente, coloco o link para ir a essa página
echo "<a href='lista_resultado.php?pagina=" . $i ."' class=\"cinza_escuro10\">" . $i . "</a> ";
}
}
if ($pagina < $total_paginas) {
$btn_prox = $pagina + 1;
echo " - ";
echo "<a href='lista_resultado.php?pagina=".$btn_prox."' class=\"cinza_escuro10\">Próxima</a> ";
}
echo "</center>";
echo "</span>";
echo "<br>";
}
?>
Eu acredito que ele mostra todos os imóveis pq a pesquisa se estiver em branco mostra tudo.. e agora eu to bem perdido.. se alguém puder me ajudar.. agradeço..
Carregando comentários...