Limitar itens de uma paginação quando recebe um array no PHP
Olá pessoal, preciso de uma grand ajuda de vocês, pois estou desenvolvendo um novo website e preciso acertar uma paginação SEM REFRESH que peguei em alguns tutoriais e adaptei as minhas necessidades , e essa paginação recebe normalmente quando não é um array, e irei explicar detalhadamente, tipo assim, o usuário faz uma busca de uma imóvel e escolhe um determinado bairro, e este bairro possuem 20 imóveis , na hora da paginação ele retorna certinho conforme minha limitação TIPO 4 ITENS POR PAGINAÇÃO, até tranquilidade, mas se o usuário buscar 2 bairro, por exemplo Tatuapé e Brás e cada bairro possuir 30 imóveis e eu limitar para aparecer 5 por página, o código trás 5 de cada bairro e fica aparecendo 10 na paginação ao invés de 5 , e queria que aparecesse somente 5 e os outros bairros viesses na próxima página..
Estou a semanas tentando acertar isso
Segue o código abaixo:
Código php com os critérios de busca:
if(isset($_POST) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
include_once("config.php");$sessao_usuario_1=session_start();
$session_id=session_id();
$session=$_SESSION['UsuarioLogin'];
$senha=$_SESSION['UsuarioSenha'];
if (!isset($_SESSION)) session_start();
$nivel_necessario=NULL; //include config file
//Get page number from Ajax POST
if(isset($_POST["page"])){
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number
if(!is_numeric($page_number)){die('Página inválida!');} //incase of invalid page number
}else{
$page_number = 1; //if there's no page number, set it to 1
}
$results = $MySQLi->query("SELECT id,ip,negocio,tipo,cidade,bairro FROM busca_bairros WHERE ip='".$ip."' ORDER BY id DESC");
$linha=mysqli_fetch_array($results);
$negocio_id=$linha['negocio'];
$tipo_id=$linha['tipo'];
$cidade_id=$linha['cidade'];
$bairro_id=$linha['bairro'];
$tipo_id_2=explode("|",$tipo_id);
$cidade_id_2=explode("|",$cidade_id);
$bairro_id_2=explode("|",$bairro_id);
foreach ($tipo_id_2 as $key=> $tipo_id_3):
foreach ($cidade_id_2 as $key=> $cidade_id_3):
foreach ($bairro_id_2 as $kSey=> $bairro_id_3):
/ MONTA CRITERIOS DE BUSCA /
$where = "i.ativo ='1'";
if(!empty( $negocio_id) ) {
$where .=" AND i.id_negocio_tipo=".$negocio_id."";
}if(!empty( $tipo_id_3 ) ) {
$where .=" AND i.id_tipo_imovel=".$tipo_id_3."";
}if(!empty( $cidade_id_3 ) ) {
$where .=" AND i.id_cidade=".$cidade_id_3."";
}if(!empty( $bairro_id_3 ) ) {
$where .=" AND i.bairro=".$bairro_id_3."";
}
echo $bairro_id_3 .",";//get total number of records from database for pagination
$results = $MySQLi->query("SELECT i.*, t.tipo_nome, b.bairro, n.tipo, c.cidade FROM imoveis
i LEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo)
LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel)
LEFT JOIN cidades c ON (c.id = i.id_cidade)
LEFT JOIN bairros b ON (b.id = i.bairro)
WHERE ".$where."") or print(mysqli_error());
$get_total_rows =mysqli_num_rows($results); //hold total records in variable
//break records into pages
$total_pages = ceil($get_total_rows / $item_per_page);
$pgs = ceil($total_pages / $page_number);
$total_dados +=$get_total_rows;//get starting position to fetch the records
$page_position = (($page_number-1) * $item_per_page);
$pgst = ceil($total_dados / $item_per_page);
mysqli_free_result($results);////////
endforeach;
endforeach;
endforeach;if (!empty($total_dados)==1 ) {
echo "<br /><br /><div class='codigo_busca'><p>Foram encontrados <b>".$total_dados."</b> imóveis.</p>"."<br />";
echo "<p><span style='font-weight:bold; font-size:14px; color:#FF0;'><b>Página:</b></span> <span style='font-weight:bold; font-size:14px;'>".$page_number." de ".$pgst."</span></p></div><br /><br />";}else{
echo"<br /><br /><br />";
echo "<div class='sem_busca'><b><span style='font: 22px Arial; color: #FFF; font-size: 15px;'><b>Nenhum imóvel encontrado! Tente uma nova busca !<br /><br /></b></span></b>";
echo"<br /><a href='javascript:window.history.go(-1)'><font color='#ffffff' size='2' face='Arial, Helvetica, sans-serif'><b>VOLTAR<br /><br /><img src='".$site."imagens/voltar.png'></b></font></a></div><br /><br />";
}}foreach ($tipo_id_2 as $key=> $tipo_id_3):
foreach ($cidade_id_2 as $key=> $cidade_id_3):
foreach ($bairro_id_2 as $kSey=> $bairro_id_3):
/ MONTA CRITERIOS DE BUSCA /
$where = "i.ativo ='1'";
if(!empty( $negocio_id) ) {
$where .=" AND i.id_negocio_tipo=".$negocio_id."";
}if(!empty( $tipo_id_3 ) ) {
$where .=" AND i.id_tipo_imovel=".$tipo_id_3."";
}if(!empty( $cidade_id_3 ) ) {
$where .=" AND i.id_cidade=".$cidade_id_3."";
}if(!empty( $bairro_id_3 ) ) {
$where .=" AND i.bairro=".$bairro_id_3."";
}
$sql =$MySQLi->query("SELECT i.id, i.valor, i.foto_exibicao, i.quartos, i.garagem,i.mapa, i.codigo, t.tipo_nome, n.tipo AS negocio, c.cidade, c.uf, b.bairro FROM imoveis iLEFT JOIN negocio_tipo n ON (n.id = i.id_negocio_tipo)
LEFT JOIN imoveis_tipo t ON (t.id = i.id_tipo_imovel)
LEFT JOIN cidades c ON (c.id = i.id_cidade)
LEFT JOIN bairros b ON (b.id = i.bairro)
WHERE ".$where." ORDER BY i.id DESC LIMIT (".array_slice.""." ".$page_position.", ".$item_per_page.") ") or print(mysqli_error());
while($linha = mysqli_fetch_array( $sql ) ) {
$dados=mysqli_num_rows($sql);
$foto=$linha['foto_exibicao'];
$tipos=$linha['tipo_nome'];
$tipo = $tipos;
$tipo = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($tipo)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$bairros=$linha['bairro'];
$bairro = $bairros;
$bairro = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($bairro)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$cidades=$linha['cidade'];
$cidade = $cidades;
$cidade = strtolower( str_replace(" ", "-", strtr(utf8_decode(trim($cidade)), utf8_decode("áàãâéêíóôõúüñçÁÀÃÂÉÊÍÓÔÕÚÜÑÇ"),"aaaaeeiooouuncAAAAEEIOOOUUNC-")) );
$mapa=$linha['mapa'];
$id=$linha['id'];
?>
<div class="listaImoveis">
<?php
$img1='<a href="'.$site.'imovel/'.$tipo ."/".$bairro."/".$cidade."/".$linha['id'].'">
<img src="'.$site.'img_imoveis/'.$foto.'" width="170" height="130" alt="Imobiliária em São Paulo" /></a>
';$img2='
<a href="'.$site.'imovel/'.$tipo ."/".$bairro."/".$cidade."/".$linha['id'].'">
<img src="'.$site.'img_imoveis/sem_foto.jpg" width="170" height="130" alt="Imobiliária em São Paulo" /></a>
';if(!empty($foto)){
echo $img1;
}else{
echo $img2;
}
$url = getPage('https://maps.googleapis.com/maps/api/geocode/json?address='.$mapa.'&key=AIzaSyAQiIvxtURMaZKpE6Tj6hyJdfC72kgQI3g');
$output= json_decode($url);
$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
if(!$mapa==1){
echo "<div class='alert_mapa'><img src='images/atencao.png'> Não foi possível abrir a localização pelo Google Mapas deste imóvel !</div>";
exit;
}else if($lat==$long){
echo "<div class='alert_mapa_2'><img src='images/atencao.png'> OPS Não existem coordenadas para este Endereço no google Mapas !</div>";
}
?>
<div class="listaImoveisbox">
<div class="listcodigo">Código: <?php echo $linha['id']; ?></div>
<div class="listnegocio"><?php echo $linha['negocio']; ?></div>
<div class="listnome"><?php echo $linha['tipo_nome']; ?></div>
<div class="listvalor">Valor: <?php echo ( empty( $linha['valor'] ) || $linha['valor'] == '0.00' ? 'Consulte-nos' : 'R$ ' . number_format( $linha['valor'], 2, ',', '.') ); ?></div>
<div class="comparar"><form><label><input name="comparar[]" type="checkbox" id="comparar" value="<?php echo $linha['id'];?>" /> Comparar </label></form></div>
<div class="listquartos">Quartos: <?php echo $linha['quartos']; ?></div>
<div class="listgaragem">Garagem: <?php echo $linha['garagem']; ?> vaga(s)</div>
<div class="listbairro"><?php echo $linha['bairro']; ?></div>
<div class="listcidade"><?php echo $linha['cidade'] . '/' . $linha['uf']; ?></div>
<div class="favoritos_busca">
<a data-id="<?php echo $linha['id']; ?>" data-toggle="modal" data-target="#myModalfavoritos<?php echo $id;?>" class="hvr-pulse"><img src="images/icon_favoritos.png" alt="Favoritos"></a></div>
<div class="busca_informacoes">
<a href="imovel/<?php echo $tipo?>/<?php echo $bairro?>/<?php echo $cidade?>/<?php echo $linha['id'];?>">MAIS INFORMAÇÕES
</a>
</div>
Código HTML com a DIV que recebe os dados : buscadeimoveis.php
<html lang="pt-br">
<!--<![endif]--><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<base href="<?php echo $site;?>">
<title><?php echo $nome_empresa_2;?></title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/form.css" rel="stylesheet" type="text/css">
<link href="css/main.css" rel="stylesheet" type="text/css">
<link href="css/css.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="css/demo.css"><!-- Pushy CSS -->
<link rel="stylesheet" href="css/jquery.fancybox.min.css">
<link rel="stylesheet" href="css/pushy.css">
<link rel="stylesheet" type="text/css" href="engine1/style.css" />
<link rel="canonical" href="<?php echo $site;?>imovel/<?php echo "".$_GET['tipo_nome']."/".$_GET['bairro']."/".$_GET['cidade']."/".$_GET['idi'].""?>"/><!-- Para saber mais sobre os comentários condicionais sobre as tags html na parte superior do arquivo:
paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
Se você estiver usando a compilação personalizada do modernizr (http://www.modernizr.com/), faça o seguinte:
* insira o link para o seu js aqui
* remova o link abaixo para o html5shiv
* adicione a classe "no-js" às tags html na parte superior
* você também pode remover o link para respond.min.js se tiver incluído o MQ Polyfill na sua compilação do modernizr
-->
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<!--[if IE]>
<script type="text/javascript">
alert('AVISO:Voce está rodando O INTERNET EXPLORER 8 ou inferior, e esta desatualizado, e este navegador não suporta as tecnologias de nosso site, atualize seu navegador para acessar o nosso site perfeitamente... Obrigado.');
</script><![endif]-->
<!--[if gt IE 8]><!-->
<div id="body">
<div id="galeria_fotos">
<div class="galeria">
<div class="title">
<div class="title_texto">
</div></div>
<div class="fundo_busca">
<div class="painel_busca_total">
<div class="texto_busca"><b>RESULTADO DA BUSCA</b></div>
<?php
$expira_busca =1;
$tempo_on_busca= date('Y-m-d H:i:s');$tempo_fim_busca= date('Y-m-d H:i:s',mktime(date('H'),date('i') -
$expira_busca,date('s'),date('m'),date('d'),date('Y')));
$negocio = strip_tags( $_POST['negocio'] );
$tipo_id = $_POST['tipo'];
$cidade = $_POST['cidade'];
$bairro = $_POST['bairro'] ;
$MySQLi->query("CREATE TABLE busca_bairros (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ip VARCHAR(255) NOT NULL,
negocio VARCHAR(255) NOT NULL,
tipo VARCHAR(255) NOT NULL,
cidade VARCHAR(255),
bairro VARCHAR(255),
date TIMESTAMP
) ");
$tipos=implode("|",$tipo_id);
$cidades=implode("|",$cidade);
$bairros=implode("|",$bairro);
$MySQLi->query("INSERT INTO busca_bairros(ip,negocio,tipo,cidade,bairro,date)VALUES('".$ip."','".$negocio."','".$tipos."','".$cidades."','".$bairros."','".$tempo_on_busca."')");
$MySQLi->query("DELETE FROM busca_bairros WHERE date<='".$tempo_fim_busca."'");
$MySQLi->query("ALTER TABLE busca_bairros AUTO_INCREMENT = 1;");
?>
<div class="loading-div"><img src="img/status.gif" ></div>
<div id="results"><!-- content will be loaded here --></div>
</div>
<br /><br /><br /><br />
</div></div></div>
</body>
</html>
Lembrando que essa paginação é sem reflesh
Se alguém puder me dar um help agradeço..
Página de teste onde esta o link da paginação:
[http://www.netsistec.com.br/jc_2018/resultado-da-busca](http://www.netsistec.com.br/jc_2018/resultado-da-busca)Discussão (0)
Carregando comentários...