Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite a todos. Gostaria que alguém me ajudasse a resolver um problema. Desenvolvo um portal imobiliário com php, js e pdo.
Estou criando uma página para listar os imóveis pelas suas características, mais especificamente, cidades.
Na home criei listas com cidades. Ex: imóveis à venda em São Paulo, apartamentos para alugar em São, etc. Criei uma pasta sp pra colocar as funções lá.
Só que ao selecionar a função no href referente está duplicando o registro ao mostrar nesta página de cidades, sp.php.
O link está assim: <li> <a href="index.php?pg=sp/sp&imobvendsp=imobvendsp">» Imóveis à venda em São Paulo</a></li>
Era para considerar apenas a função do imobvendsp. no caso está considerando a função do apartvendsp. Este imóvel se enquadra nos dois. Só que no link eu chamo apenas uma função. Não entendo a razão de mostrar duas vezes o imóvel.
Vou postar o código dos três arquivos para entenderem melhor.
Arquivo: bloco_saopaulo.php
<!--Bloco São Paulo-->
<div id="blocoSaoPaulo" >
<ul>
<img src="images/SaoPaulo.jpeg" width="478" height="279" alt="" title=""/>
<div class="guia"><h1>Os links abaixo podem ajudá-lo na busca pelo seu imóvel em <b>São Paulo:</b></h1></div>
<li> <a href="index.php?pg=sp/sp&imobvendsp=imobvendsp">» Imóveis à venda em São Paulo</a></li>
<li> <a href="">» Casas à venda em São Paulo</a> </li>
<li> <a href="index.php?pg=sp/sp&apartvendSP=apartvendSP">» Apartamentos à venda em São Paulo</a> </li>
<li> <a href="#">» Imóveis a alugar em São Paulo</a> </li>
<li> <a href="#">» Casas a alugar em São Paulo</a> </li>
<li> <a href="#">» Apartamentos a alugar em São Paulo</a> </li>
</ul>
</div>
______________________________________________________________________________
arquivo: func_sp.php
<!--Funções cidades-->
<?php
ini_set('default_charset','UTF-8');
mysql_set_charset('utf8');
function imobvendSP(){
include"Connections/config.php";
$imovelStatus = 'completo';
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$dataVal = date('Y-m-d H:m:s');
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '20'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql = "SELECT * FROM d_imoveis
WHERE imovelTermino >= :dataValAND imovelNegocio = :operaNegocio
AND imovelCidade = :operaCidade
ORDER BY imovelId DESC LIMIT ".$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal', date('Y-m-d H:m:s'),PDO::PARAM_STR);
$query->bindValue(':operaNegocio', $operaNegocio,PDO::PARAM_STR);
$query->bindValue(':operaCidade', $operaCidade,PDO::PARAM_STR);
$query->execute();
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}
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'];
$bairro = $res['imovelBairro'];
$cidade = $res['imovelCidade'];
$estado = $res['imovelEstado'];
$rua = $res['imovelRua'];
$area = $res['imovelArea'];
$garagem = $res['imovelGaragem'];
$suites = $res['imovelSuites'];
$banheiros = $res['imovelBanheiros'];
$salas = $res['imovelSalas'];
if(isset($_POST['executar']) && $_POST['executar'] == 'Filtrar'){
switch (isset($_POST['ordem'])) {
case 'area':
$ordem = "ORDER BY imovelArea DESC LIMIT ".$inicio.','.$maximo;
break;
case 'maiorvalor':
$ordem = "ORDER BY imovelValor DESC LIMIT ".$inicio.','.$maximo;
break;
case 'menorvalor':
$ordem = "ORDER BY imovelValor ASC LIMIT ".$inicio.','.$maximo;
break;
case 'banheiros':
$ordem = "ORDER BY imovelBanheiros DESC LIMIT ".$inicio.','.$maximo;
break;
case 'dormitorios':
$ordem = "ORDER BY imovelDormitorios DESC LIMIT ".$inicio.','.$maximo;
break;
default:
$ordem = "ORDER BY imovelId DESC ";
}
}
echo'<ul>';
echo '<li>';
echo'<a href="index.php?pg=single&imovel=' . $imovelID . '"><img src="timthumb.php?src=midias/' . $thumb . '&h=120&w=160&zc=1" alt="' . $titulo . '" title="' . $titulo . '" border="0" /></a>';
echo '<span><a href="index.php?pg=single&imovel=' . $imovelID . '">R$ ' . $valor . ' - ' . $tipo . ' para ' . $negocio . ' </a></span>';
echo '<h1><a href="index.php?pg=single&imovel=' . $imovelID . '">' . $rua . ', ' . $bairro . ', ' . $cidade . ', ' . $estado . ' </a></h1>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '.$area . ' m² | ' . $dormitorios . ' dormitórios | Garagem: ' . $garagem .' </a></h2>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $suites . ' Suítes | ' . $banheiros. ' banheiros | '. $salas.' Salas </a></h2>';
echo '<h3><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $titulo . ' </a></h3>';
echo '<h4> <a href="#"><img src="images/visualizar.png" width="15 " height="15"/>Visualizar descrição</a></h4>';
echo '<h5><a href="index.php?pg=single&imovel=' . $imovelID . '">Ver outros detalhes</a></h5>';
echo '<h6><a href="#">Contatar anunciante</a></h6>';
echo'</li>';
echo'</ul>';
}
}
?>
<?php function apartvendSP(){
include"Connections/config.php";
$imovelStatus = 'completo';
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$operaTipo = 'Apartamento';
$dataVal = date('Y-m-d H:m:s');
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag; $pag = '1';
}
$maximo = '20'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$sql = "SELECT * FROM d_imoveis
WHERE imovelTermino >= :dataValAND imovelNegocio = :operaNegocio
AND imovelCidade = :operaCidade
AND imovelTipo = :operaTipo
ORDER BY imovelId DESC LIMIT ".$inicio.','.$maximo;
try{
$query = $conecta->prepare($sql);
$query->bindValue(':dataVal', date('Y-m-d H:m:s'),PDO::PARAM_STR);
$query->bindValue(':operaNegocio', $operaNegocio,PDO::PARAM_STR);
$query->bindValue(':operaCidade', $operaCidade,PDO::PARAM_STR);
$query->bindValue(':operaTipo', $operaTipo,PDO::PARAM_STR);
$query->execute();
$resultado = $query->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOexception $error_imovels){
echo 'Erro ao selecionar os imoves!';
}
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'];
$bairro = $res['imovelBairro'];
$cidade = $res['imovelCidade'];
$estado = $res['imovelEstado'];
$rua = $res['imovelRua'];
$area = $res['imovelArea'];
$garagem = $res['imovelGaragem'];
$suites = $res['imovelSuites'];
$banheiros = $res['imovelBanheiros'];
$salas = $res['imovelSalas'];
if(isset($_POST['executar']) && $_POST['executar'] == 'Filtrar'){
switch (isset($_POST['ordem'])) {
case 'area':
$ordem = "ORDER BY imovelArea DESC LIMIT ".$inicio.','.$maximo;
break;
case 'maiorvalor':
$ordem = "ORDER BY imovelValor DESC LIMIT ".$inicio.','.$maximo;
break;
case 'menorvalor':
$ordem = "ORDER BY imovelValor ASC LIMIT ".$inicio.','.$maximo;
break;
case 'banheiros':
$ordem = "ORDER BY imovelBanheiros DESC LIMIT ".$inicio.','.$maximo;
break;
case 'dormitorios':
$ordem = "ORDER BY imovelDormitorios DESC LIMIT ".$inicio.','.$maximo;
break;
default:
$ordem = "ORDER BY imovelId DESC ";
}
}
echo'<ul>';
echo '<li>';
echo'<a href="index.php?pg=single&imovel=' . $imovelID . '"><img src="timthumb.php?src=midias/' . $thumb . '&h=120&w=160&zc=1" alt="' . $titulo . '" title="' . $titulo . '" border="0" /></a>';
echo '<span><a href="index.php?pg=single&imovel=' . $imovelID . '">R$ ' . $valor . ' - ' . $tipo . ' para ' . $negocio . ' </a></span>';
echo '<h1><a href="index.php?pg=single&imovel=' . $imovelID . '">' . $rua . ', ' . $bairro . ', ' . $cidade . ', ' . $estado . ' </a></h1>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '.$area . ' m² | ' . $dormitorios . ' dormitórios | Garagem: ' . $garagem .' </a></h2>';
echo '<h2><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $suites . ' Suítes | ' . $banheiros. ' banheiros | '. $salas.' Salas </a></h2>';
echo '<h3><a href="index.php?pg=single&imovel=' . $imovelID . '"> '. $titulo . ' </a></h3>';
echo '<h4> <a href="#"><img src="images/visualizar.png" width="15 " height="15"/>Visualizar descrição</a></h4>';
echo '<h5><a href="index.php?pg=single&imovel=' . $imovelID . '">Ver outros detalhes</a></h5>';
echo '<h6><a href="#">Contatar anunciante</a></h6>';
echo'</li>';
echo'</ul>';
}
}
?>
_________________________________________________________________________________
arquivo sp.php
<div id="pagina" >
<?php include"nav/pagina_left.php";?>
<div id="pagina_center">
<div id="lista">
<?php
$imobvendsp = isset($_GET['imobvendsp']);
if (isset($_GET['imobvendsp'])){
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '20'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$conn = new PDO('mysql:host=localhost;dbname=imobi', 'root', '');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select = $conn->query("SELECT * FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC LIMIT " .$inicio. ", " .$maximo);
$result_total = $conn->query("SELECT count(*) as total FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC")->fetch(PDO::FETCH_OBJ);
if ($result_total === "0")
echo "<h1>Sem dados para paginação</h1>";
$links = '5';
$paginas = ceil($result_total->total/$maximo);
$conn = null;
$links = '5'; //QUANTIDADE DE LINKS NO PAGINATOR
$anterior = (($pag - 1) == 0) ? 1 : $pag - 1;
}
echo'<div id="ordena">
<form name="filtrar" action="" method="post">
<label>Ordenar por:</label>
<select name="ordem" >
<option value="">Ordenar lista</option>
<option value="area" name="area">Área</option>
<option value="maior" name="maior">Maior Valor</option>
<option value="menor" name="menor" >Menor Valor</option>
<option value="banheiros" name="banheiros">Nº de Banheiros</option>
<option value="dormitorios" name="dormitorios" >Nº de Dormitórios</option>
</select>
<input type="hidden" name="accao" value="filtrar" />
<input type="submit" name="button" value="Filtrar"/>
</form>';
echo'<h1>Imóveis:' .$pag.'-'.$maximo.' de '.$result_total->total.'</h1>
</div><!--ordena--> ';?>
<?php echo imobvendsp();
echo'<div id="paginar">';
echo'<div class="paginator">';
echo "<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=1\">Primeira</a> ";
echo "<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$anterior\">Anterior</a> ";
for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$i\">$i</a> ";
}
}echo "$pag ";
for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$i\">$i</a> ";
}
}
$posterior = (($pag + 1) >= $paginas) ? $paginas : $pag + 1;
echo "<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$posterior\">Próxima</a> ";
echo "<a href=\"index.php?pg=sp&imobvendsp=$imobvendsp&operaNegocio=$operaNegocio&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$paginas\">Última</a> ";
echo'</div>';
echo'</div>';
?>
<?php if (isset($_GET['apartvendsp'])){
$imovelStatus = 'completo';
$dataVal = date('Y-m-d H:m:s');
$operaNegocio = 'venda';
$operaCidade = 'Sao Paulo';
$operaTipo = 'Apartamento';
$pag = isset($_GET["pag"]) ? $_GET["pag"] : null;
if($pag >= '1'){
$pag = $pag;
}else{
$pag = '1';
}
$maximo = '20'; //RESULTADOS POR PÁGINA
$inicio = ($pag * $maximo) - $maximo;
$conn = new PDO('mysql:host=localhost;dbname=imobi', 'root', '');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select = $conn->query("SELECT * FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelTipo = '$operaTipo'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC LIMIT " .$inicio. ", " .$maximo);
$result_total = $conn->query("SELECT count(*) as total FROM d_imoveis
WHERE imovelTermino >= '$dataVal'
AND imovelStatus = '$imovelStatus'
AND imovelCidade = '$operaCidade'
AND imovelTipo = '$operaTipo'
AND imovelNegocio = '$operaNegocio' ORDER BY imovelId DESC")->fetch(PDO::FETCH_OBJ);
if ($result_total === "0")
echo "<h1>Sem dados para paginação</h1>";
$links = '5';
$paginas = ceil($result_total->total/$maximo);
$conn = null;
$links = '5'; //QUANTIDADE DE LINKS NO PAGINATOR
$anterior = (($pag - 1) == 0) ? 1 : $pag - 1;
}
echo'<div id="ordena">
<form name="filtrar" action="" method="post">
<label>Ordenar por:</label>
<select name="ordem" >
<option value="">Ordenar lista</option>
<option value="area" name="area">Área</option>
<option value="maior" name="maior">Maior Valor</option>
<option value="menor" name="menor" >Menor Valor</option>
<option value="banheiros" name="banheiros">Nº de Banheiros</option>
<option value="dormitorios" name="dormitorios" >Nº de Dormitórios</option>
</select>
<input type="hidden" name="accao" value="filtrar" />
<input type="submit" name="button" value="Filtrar"/>
</form>';
echo'<h1>Imóveis:' .$pag.'-'.$maximo.' de '.$result_total->total.'</h1>
</div><!--ordena--> ';?>
<?php echo apartvendSP();
echo'<div id="paginar">';
echo'<div class="paginator">';
echo "<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=1\">Primeira</a> ";
echo "<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$anterior\">Anterior</a> ";
for ($i = $pag-$links; $i <= $pag-1; $i++){
if ($i <= 0){
}else{
echo"<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$i\">$i</a> ";
}
}echo "$pag ";
for($i = $pag +1; $i <= $pag+$links; $i++){
if($i > $paginas){
}else{
echo "<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$i\">$i</a> ";
}
}
$posterior = (($pag + 1) >= $paginas) ? $paginas : $pag + 1;
echo "<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$posterior\">Próxima</a> ";
echo "<a href=\"index.php?pg=sp&apartvendsp=$apartvendsp&operaNegocio=$operaNegocio&operTipo=$operaTipo&imovelTermino=$imovelTermino&imovelStatus=$imovelStatus&operaCidade=$operaCidade&pag=$paginas\">Última</a> ";
echo'</div>';
echo'</div>';
?>
</div>
</div><!--pagina center-->
<?php include"nav/pagina_right.php";?>
</div><!--fecha pagina-->
Espero que alguém me ajude, é com urgência, por favor. Eu me confundi e não consigo resolver. Alguém me dê uma luz...
Fiquei muito tempo sem mexer nesse projeto, então perdi um pouco do raciocínio.
Aguardo ajuda. Boa noite a todos, desde já agradeço.
Carregando comentários...