Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cweb

busca filtrada

Recommended Posts

Olá pessoa depois de agumas pesquisas aqui no forum resolvi postar a minha dúvida (não sei muito bem o termo a buscar aqui no forum)

é o seguinte:

 

tenho um form para realizar uma busca filtrada, é por menus DropDown por isso sem complicação a pessoa escolhe um item e filtra bem, mas a minha dúvida consiste no seguinte, existe a possíbilidade de em qualquer um dos menus DropDown ter a opção TODOS, ou seja se ele escolher todos penso que a consulta de ser ignorada deste campo ou campos , corijam-me se tiver errado.

 

o código é o seguinte:

 

<form id="formS" name="formS" method="post" action="/results/ ">

 

Imovel

<select name="imovel" id="imovel">

<option selected="selected" value="-1">Todos</option>

<option value="Apartamento">Apartamento</option>

<option value="Armazém">Armazém</option>

</select>

 

 

Negócio

<select name="negocio" id="negocio">

<option selected="selected" value="-1">Todos</option>

<option value="Arrendamento">Apartamento</option>

<option value="Venda">Armazém</option>

</select>

 

Tipologia:

<select id="tipo" name="tipo">

<option selected="selected" value="-1">Todos</option>

<option value="0">nenhum</option>

<option value="T0">T0</option>

<option value="T1">T1</option>

<option value="T2">T2</option>

<option value="T3">T3</option>

<option value="T4">T4</option>

<option value="T5">>=T5</option>

</select>

 

Distrito:

<select id="distrito" name="distrito">

<option selected="selected" value="-1">Todos</option>

<option value="1">Aveiro</option>

<option value="2">Beja</option>

<option value="20">Madeira</option>

<option value="20">.... bla bla</option>

</select>

 

Concelho:

<select id="concelho" name="concelho">

<option selected="selected" value="-1">Todos</option>

</select>

 

<input type="submit" name="go" id="go" value="go" />

<input type="hidden" name="ok" value="1" />

 

 

</form>

 

no php tenho

 

// PARA EFEITOS DE TESTE - aqui seria obviamente resgatado via $_POST[]
$tipo = "T1";
$negocio = "Arrendamento";
$imovel = "Apartamento";
$distrito = "1";
$concelhos = "1";


mysql_select_db($database_conn_bd, $conn_bd);
$query_rsProcura = "SELECT  * FROM t_imoveis 
					WHERE 
					tipo='$tipo' AND negocio='$negocio' AND imovel='$imovel' AND distrito = '$distrito' AND concelhos = '$concelhos' 
					ORDER BY id ASC";
$rsProcura = mysql_query($query_rsProcura, $conn_bd) or die(mysql_error());
$row_rsProcura = mysql_fetch_assoc($rsProcura);
$totalRows_rsProcura = mysql_num_rows($rsProcura);

por exemplo de seleccionasse TODOS no 1º campo Imovel ele deveria igorar imovel='$imovel' AND

Correcto?

como posso fazer essa verificação?

obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

OKAY, mais uma vez resolvi, ao segundo dia só com nenhuma dica que nada tinha haver com o pertendido, mas pelo menos tentou e foi o único, mas ok, este forum já teve melhores dias!!!!

 

no entanto não sou egoísta e vou postar a resolução para pessoas com as mesmas dificuldades que eu tive

 

AH, O SERVIDOR ESTÁ SEMPRE A CAIR DESDE QUE PASSOU PARA UOL PENSO EU (tempo de o rever LOL)

 

<UPDATED 4

ao segundo dia, SOLVED 2

UPDATED>

 

//////////////////////
//value "-1" ignores  "WHERE" and "AND"
//data passed by $_POST[]; 
//for it test only
$tipo1 = "-1"; //$_POST[];
$negocio1 = "-1"; //$_POST[];
$imove1l = "-1"; //$_POST[];
$distrito1 = "-1"; //$_POST[];
$concelhos1 = "-1"; //$_POST[];
//////////////////////

mysql_select_db($database_conn_bd, $conn_bd);
$query_rsJoin = 
					   "SELECT * FROM t_imoveis 
			LEFT OUTER JOIN t_tipologia  ON  (t_imoveis.tipologia_id = t_tipologia.tid)
			LEFT OUTER JOIN t_negocio	ON (t_imoveis.negocio_id = t_negocio.nid)   
			LEFT OUTER JOIN t_imoveltipo ON (t_imoveis.imovel_id = t_imoveltipo.iid)   
			LEFT OUTER JOIN t_distritos  ON (t_imoveis.distrito_id = t_distritos.did)   
			LEFT OUTER JOIN t_concelhos  ON (t_imoveis.concelhos_id = t_concelhos.cid)
					  ";
		 $where = array();
				   
		 if ($tipo1 != '-1')
		{
			 $where[] = "t_imoveis.tipologia_id = '$tipo1' ";
		}

		if ($negocio1 != '-1')
		{
			  $where[] = "t_imoveis.negocio_id = '$negocio1' ";
		}
		 if ($imove1l != '-1')
		{
			  $where[] = "t_imoveis.imovel_id = '$imove1l' ";
		}
		if ($distrito1 != '-1')
		{
			  $where[] = "t_imoveis.distrito_id = '$distrito1'";
		}
		 if ($concelhos1 != '-1')
		{
			  $where[] = "t_imoveis.concelhos_id = '$concelhos1'";
		}
$query_rsJoin .= (count($where) >0) ? "WHERE " . implode(" AND ", $where) : "";

$rsJoin = mysql_query($query_rsJoin, $conn_bd) or die(mysql_error());
$row_rsJoin = mysql_fetch_assoc($rsJoin);
$totalRows_rsJoin = mysql_num_rows($rsJoin);

um abraço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.