cweb 0 Denunciar post Postado Abril 7, 2008 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
cweb 0 Denunciar post Postado Abril 7, 2008 RESOLVIDO a1 parte Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Abril 7, 2008 Todos = 'IS NOT NULL' Compartilhar este post Link para o post Compartilhar em outros sites
cweb 0 Denunciar post Postado Abril 8, 2008 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