Sistema de busca com filtros em PHP
Boa tarde pessoal, estou criando um sistema de busca com filtros, já fiz tudo, porém não estou conseguindo retornar o conteudo em uma nova pagina.
Abaixo segue o codigo
<?php
$conectar = mysql_connect('localhost','root','') or die(mysql_error());
if($conectar){
$banco = mysql_select_db('video_aula');
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Listar Imoveis</title>
</head>
<body>
<form action="" method="get" enctype="multipart/form-data">
<span>Tipo</span><br />
<select name="tipo">
<option value="" selected="selected">Selecione o tipo...</option>
<?php
$pega_tipos = mysql_query("SELECT * FROM tipo ORDER BY id DESC");
if(mysql_num_rows($pega_tipos) == 0){
echo '<option value="">Não foram encontrados tipos ainda</option>';
}else{
while($linha = mysql_fetch_array($pega_tipos)){
echo '<option value="'.$linha['id'].'">'.$linha['tipo'].'</option>';
}
}
?>
</select><br />
<span>Finalidade</span><br />
<select name="finalidade">
<option value="" selected="selected"> Selecione a finalidade...</option>
<?php
$pega_finalidade = mysql_query("SELECT * FROM finalidade ORDER BY id DESC");
if (mysql_num_rows($pega_finalidade) == 0){
echo '<option value="">Não foram encontrados finalidades ainda</option';
}else{
while ($linhaB = mysql_fetch_array($pega_finalidade)){
echo '<option value="'.$linhaB['id'].'">'.$linhaB['finalidade'].'</option>';
}
}
?>
</select><br />
<span>Bairro</span><br />
<select name="bairro">
<option value="" selected="selected">Selecione o bairro...</option>
<?php
$pega_bairro = mysql_query("SELECT * FROM bairros ORDER BY id DESC");
if(mysql_num_rows($pega_bairro) == 0){
echo '<option value="">Não foram encontrados bairros ainda</option>';
}else{
while($linhaC = mysql_fetch_array($pega_bairro)){
echo '<option value="'.$linhaC['id'].'">'.$linhaC['bairro'].'</option>';
}
}
?>
</select><br />
<span>Preço</span><br />
<select name="preco">
<option value="" selected="selected">Selecione o preço...</option>
<option value="15000">Até 15000</option>
<option value="20000">Até 20000</option>
<option value="30000">Até 30000</option>
<option value="17000">Até 17000</option>
</select><br />
<input type="hidden" name="acao" value="enviar" />
<input type="submit" value="Buscar" name="s" />
</form>
<hr />
<?php if(isset($_GET['acao']) && $_GET['acao'] == 'enviar'){
$tipo = $_GET['tipo'];
$bairro = $_GET['bairro'];
$preco = $_GET['preco'];
switch($preco){
case '15000';
$valor = 'AND preco <= 15000';
break;
case '20000';
$valor = 'AND preco BETWEEN 15000 AND 20000';
break;
case '30000';
$valor = 'AND preco BETWEEN 20000 AND 30000';
break;
case '17000';
$valor = 'AND preco BETWEEN 15000 AND 17000';
break;
}
$seleciona_imovel = mysql_query("SELECT * FROM imoveis WHERE tipo = '$tipo' AND bairro = '$bairro' $valor");
if(mysql_num_rows($seleciona_imovel) == 0){
echo '<h1>Desculpe, mais sua busca, não retornou resultados</h1>';
}else{
while($linhaImovel = mysql_fetch_array($seleciona_imovel)){
echo '<h1>'.$linhaImovel['titulo'].'</h1>';
printf('<li><a href="resultado1.php?id=%s">%s</a></li>', $linhaImovel['id_imovel'], $linhaImovel['titulo']);
}
}
}
?>
</body>
</html>
<?php
//primeiro incluimos o arquivo de conexão na nossa página
require('conexao.php');
/**
* Verificamos se a $_GET['s'] existe( isset), caso exista usamos
* mysql_real_escape_string para escapar os valores
* Senão o valor será vazio
*/
//$seleciona_imovel = mysql_query("SELECT * FROM imoveis WHERE tipo = '$tipo' AND bairro = '$bairro' $valor");
$pesq = (isset($_GET['linhaImovel'])) ? mysql_real_escape_string($_GET['linhaImovel']) : '';
/**
* Verificamos se o valor está preenchido, realizando a pesquisa
* Senão retornará todos os dados do banco de dados
*/
//if(!empty($pesq)){
/**
* Montamos o SQL, onde selecionamos todos os campos da tabela,
* para isso utilizamos o sinal de asteristico
* E escolhemos a tabela, que no nosso caso se chama artigos
* Restringimos a busca pelo titulo, e usamos LIKE para realizar a pesquisa
* E também pesquisamos no campo conteudo.
*/
$strSQL = "SELECT * FROM imoveis WHERE tipo = '$tipo' AND bairro = '$bairro' $valor";
/**
*
* Caso esteja vazio o valor vindo do formulário,
* selecionamos todos os valores da tabela
* Ordenando pelo id em ordem decrescente
* Logo vai mostra do mais recente ao mais antigo
*
*/
$strSQL = "SELECT * FROM imoveis ORDER BY id_imovel DESC";
//Executamos o SQL
$qr = mysql_query($strSQL) or die(mysql_error());
//Contamos o total de registros retornado da pesquisa
$num = mysql_num_rows($qr);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)" dir="ltr" lang="pt-BR">
<head>
<title>Sistema de Busca</title>
</head>
<body>
<h1>Resultado da Pesquisa</h1>
<?php/**
* Verificamos se retorna alum registro
* Se não retornar, mostrará a mensagam de
* Nenhum registro encontrado
*/
if($num == 0){
//imprime o resultado que não foi encontrado nenhum item
echo '<h2>Nenhum registro encontrado</h2>
';
}else{
//Mostra quantos resultados foram encontrados
echo '<h2>Total de Itens Encontrados: '.$num.'</h2>';
//imprimi a tag de lista não ordenada
echo '<ul id="artigos">';
/**
* Agora recuperaremos os dados da tabela
* para isso utilizando um loop
* Ele retornará um array associativo
* Sendo que o seu indice será o nome do campo
*/
while($linhaImovel = mysql_fetch_array($qr)){
/**
* Utilizamos a função printf para mostra o link
* Atribuimos os valores que serão substituidos
* para isso utilizamos o sinal de porcentagem + a letra s (%s)
* */
printf('<li><a href="resultado.php?id=%s">%s</a></li>', $linhaImovel['id_imovel'], $linhaImovel['titulo']);
}
//imprime o fechamento da tag ul
echo '</ul>';
}
?>
</body>
</html>
<?php
//primeiro incluimos o arquivo de conexão na nossa página
require('conexao.php');
//verifica se o id ($_GET['id_imovel']) existe, se não existir ele terá o valor 0
$id = (isset($_GET['id_imovel'])) ? intval($_GET['id_imovel']) : 0 ;
//se o Id for igual, ele será redirecionado a página index.php
if($id == 0 ){
header('location: index.php');
}
/**
* Montamos agora o SQL, selecionamos todos os campos
* da tabela, para isso utilizamos o asteristico,
* escolhemos a tabela ( FROM artigos)
* Filtramos pelo campo ID
*/
$sql = "SELECT * FROM imoveis WHERE id_imovel = '$id' ";
//Executamos o SQL
$qr = mysql_query($sql);
//Recupera o valor do registro selecionado
$linhaImovel = mysql_fetch_array($qr);
//atribui o conteúdo do título a variável $titulo
$titulo = $linhaImovel['titulo'];
//atribui o conteúdo do Conteudo a variável $coteudo
$conteudo = $linhaImovel['conteudo'];
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)" dir="ltr" lang="pt-BR">
<head>
<title><?php echo $titulo ?> | Artigos</title>
</head>
<body>
<?php
//imprimi o resultado
echo "<h1>$titulo</h1>";
echo $conteudo;
?>
</body>
</html>
...
Acho que o erro esta nesta linha:
$id = (isset($_GET['id_imovel'])) ? intval($_GET['id_imovel']) : 0 ;
Porem n sei como solucionar
Discussão (10)
Carregando comentários...