boa tarde
estou aqui com uma dúvida
estou a desenvolver um site que precisa de ter uma pesquisa de imoveis.
essa pesquisa terá que ir buscar o valores a várias tabelas.
o que tenho feito é isto :
Código :
aqui vou buscar a palavra pesquisada e divido-a
Código :
o problema aqui é se procurar "t3 em sintra", aparece-me todo os imoveis de sintra e não só os T3
está a faltar aqui alguma coisa de certeza
este é o resultado que dá do echo where e tipo
Procuro por: t1 em sintra
des.nome LIKE '%t1%' OR c.nome LIKE '%t1%' OR f.nome LIKE '%t1%' OR des.nome LIKE '%sintra%' OR c.nome LIKE '%sintra%' OR f.nome LIKE '%sintra%' e mais :t.nome LIKE '%t1%' OR t.nome LIKE '%sintra%'valor: 115Foram encontrados 115 imóveis na sua pesquisa
estou aqui com uma dúvida
estou a desenvolver um site que precisa de ter uma pesquisa de imoveis.
essa pesquisa terá que ir buscar o valores a várias tabelas.
o que tenho feito é isto :
Código :
$palavras= $_POST["dados"];
$arrDelimiters = array("''"," em "," na ");
$inputText = $palavras;
$uniformText = str_replace($arrDelimiters,"-|-", $inputText);
$divididas = explode("-|-", $uniformText);
//$divididas = explode(array(" em "," na "," "),$palavras);
$contagem =count($divididas);
$arrDelimiters = array("''"," em "," na ");
$inputText = $palavras;
$uniformText = str_replace($arrDelimiters,"-|-", $inputText);
$divididas = explode("-|-", $uniformText);
//$divididas = explode(array(" em "," na "," "),$palavras);
$contagem =count($divididas);
aqui vou buscar a palavra pesquisada e divido-a
Código :
for ($i=0; $i<$contagem;$i++){
$queryLike[] = "des.nome LIKE '%".$divididas[$i]."%' OR c.nome LIKE '%".$divididas[$i]."%' OR f.nome LIKE '%".$divididas[$i]."%' ";
$query[] ="t.nome LIKE '%".$divididas[$i]."%'";
};
$where = implode(" OR ", $queryLike);
$tipo = implode(" OR ", $query);
echo $where."e mais :".$tipo ;
$local =mysql_query("SELECT * FROM imovel as i
INNER JOIN`imovel_localizacao` as l ON l.`id_imovel`=i.`id_imovel`
INNER JOIN`imovel_caracteristicas` as caract ON caract.`id_imovel`=i.`id_imovel`
INNER JOIN `destritos` as des ON des.`id_destritos`=l.`id_destritos`
INNER JOIN `concelhos` as c ON c.`id_concelhos`=l.`id_concelhos`
INNER JOIN `freguesia` as f ON f.`id_freguesia`=l.`id_freguesia`
INNER JOIN `tipologia` as t ON t.`id_tipologia`=caract.`id_tipologia`
INNER JOIN `imovel_valor` as v ON v.`id_imovel`=i.`id_imovel`
WHERE ".$where." AND ".$tipo." ");
$resultado = mysql_num_rows($local);
echo "valor: ".$resultado;
$queryLike[] = "des.nome LIKE '%".$divididas[$i]."%' OR c.nome LIKE '%".$divididas[$i]."%' OR f.nome LIKE '%".$divididas[$i]."%' ";
$query[] ="t.nome LIKE '%".$divididas[$i]."%'";
};
$where = implode(" OR ", $queryLike);
$tipo = implode(" OR ", $query);
echo $where."e mais :".$tipo ;
$local =mysql_query("SELECT * FROM imovel as i
INNER JOIN`imovel_localizacao` as l ON l.`id_imovel`=i.`id_imovel`
INNER JOIN`imovel_caracteristicas` as caract ON caract.`id_imovel`=i.`id_imovel`
INNER JOIN `destritos` as des ON des.`id_destritos`=l.`id_destritos`
INNER JOIN `concelhos` as c ON c.`id_concelhos`=l.`id_concelhos`
INNER JOIN `freguesia` as f ON f.`id_freguesia`=l.`id_freguesia`
INNER JOIN `tipologia` as t ON t.`id_tipologia`=caract.`id_tipologia`
INNER JOIN `imovel_valor` as v ON v.`id_imovel`=i.`id_imovel`
WHERE ".$where." AND ".$tipo." ");
$resultado = mysql_num_rows($local);
echo "valor: ".$resultado;
o problema aqui é se procurar "t3 em sintra", aparece-me todo os imoveis de sintra e não só os T3
está a faltar aqui alguma coisa de certeza
este é o resultado que dá do echo where e tipo
Procuro por: t1 em sintra
des.nome LIKE '%t1%' OR c.nome LIKE '%t1%' OR f.nome LIKE '%t1%' OR des.nome LIKE '%sintra%' OR c.nome LIKE '%sintra%' OR f.nome LIKE '%sintra%' e mais :t.nome LIKE '%t1%' OR t.nome LIKE '%sintra%'valor: 115Foram encontrados 115 imóveis na sua pesquisa