Remazela 6 Denunciar post Postado Agosto 20, 2015 Caros amigos Estou com um problema de busca em banco de dados. Preciso efetuar a seguinte busca por: Tipo(Venda/Alugar), Categoria e Bairro. Quando clico em buscar tudo o sistema faz a busca legal, quando quero que busque apenas por (Venda - Casa) a pesquisa busca alguns e não efetua a paginação, ou seja, se perde. Como consigo fazer essa busca ? Abaixo coloquei o meu código fonte que estou usando para efetuar a pesquisa ( PHP+PDO ). <?php //Conexão com o Banco de Dados include"Connections/config.php"; //Paginação da página $pag = "$_GET[pag]"; if($pag >= '1'){ $pag = $pag; } else { $pag = '1'; } $maximo = '5'; //RESULTADOS POR PÁGINA P/ TESTE $inicio = ($pag * $maximo) - $maximo; $tipo = $_POST['tipo']; $categoria = $_POST['categoria']; $subCat = $_POST['sub-cat']; $bairro = $_POST['bairro']; $imovelStatus = 'pendente'; $dataVal = date('Y-m-d H:m:s'); //Faço uma busca no banco de dados $sql = 'SELECT * FROM imoveis WHERE imovelTermino >= :dataVal AND imovelNegocio LIKE :tipo AND imovelTipo LIKE :categoria AND ImovelBairro LIKE :subcat AND imovelComodos LIKE :bairro AND imovelStatus LIKE :imovelStatus ORDER BY imovelId DESC LIMIT '.$inicio.','.$maximo; //Executo a conexão 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(':subcat','%'.$subCat.'%',PDO::PARAM_STR); $query->bindValue(':bairro','%'.$bairro.'%',PDO::PARAM_STR); $query->bindValue(':imovelStatus',$imovelStatus,PDO::PARAM_STR); $query->execute(); $resultado = $query->fetchAll(PDO::FETCH_ASSOC); //Total do resultado da pesquisa $result = count($resultado); }catch(PDOexception $error_imovels){ echo 'Erro ao selecionar os imoves!'; } ?> <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>Tipo:</strong></td> <td align="center" bgcolor="#E0E0E0"><strong>Operação:</strong></td> <td align="center" bgcolor="#E0E0E0"><strong>Dormitórios:</strong></td> <td align="center" bgcolor="#E0E0E0"><strong>Data do Anúncio:</strong></td> <td align="center" bgcolor="#E0E0E0"><strong>Acessar:</strong></td> </tr> <?php //Mostro na Tela o Resultado. foreach($resultado as $res){ $imovelID = $res['imovelId']; $tipo = $res['imovelTipo']; $negocio = $res['imovelNegocio']; $valor = $res['imovelValor']; $thumb = $res['imovelThumb']; $titulo = $res['imovelTitulo']; $dormitorios = $res['imovelComodos']; $data = $res['imovelCadastro']; echo '<tr>'; echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'"><img src="timthumb.php?src=midias/'.$thumb.'&h=60&w=100&zc=1" alt="'.$titulo.'" title="'.$titulo.'" border="0" /></a></td>'; echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$tipo.'</a></td>'; echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$negocio.'</a></td>'; echo '<td align="center" bgcolor="#F0F0F0"><a href="index.php?pg=single&imovel='.$imovelID.'">'.$dormitorios.' Domitórios</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.'" class="veja_mais">Veja Mais</a></td>'; echo '</tr>'; } ?> </table> <div class="paginator"> <?php //Faço a conexão com o Banco de Dados para saber quantos dados Buscou. $tipo = $_POST['tipo']; if($tipo == ""){ $sql_res = $conecta->query("SELECT * FROM imoveis WHERE imovelStatus = 'pendente' ORDER BY imovelTermino ASC") or die(mysql_error()); $total = $sql_res->rowCount(); $paginas = ceil($total / $maximo); /*Redirecionar página se for maior que a quantidade de paginas, que o sistame buscou */ if ($pag > $paginas) { echo '<script language= "JavaScript"> location.href="index.php?pg=filtro"; </script>'; } $links = '3'; //QUANTIDADE DE LINKS NO PAGINATOR echo "<a href=\"index.php?pg=filtro&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> "; } else { echo "<a href=\"index.php?pag=$paginas\">Voltar a Pesquisa</a> "; } ?> </div><!--paginator--> </div><!--fecha pagina--> Grato a todos. Atenciosamente, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 20, 2015 AND !== OR http://www.w3schools.com/sql/sql_and_or.asp Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Agosto 22, 2015 Olá amigo Williams Agradeço pela a sua dica, já fiz os testes mas não tive êxito. O meu código acima até encontra por categoria, mas quando faz a paginação se perde e volta como todos. O amigo teria algum exemplo de como faço uma busca no Banco de Dados usando PDO para: Tipo (Venda/Alugar), Categoria e Bairro sem perder o foco na paginação? Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Agosto 22, 2015 Passa os dados via GET, ou vai ter que guardar os dados dos posts em alguma variável de sessão. Compartilhar este post Link para o post Compartilhar em outros sites