Ir para conteúdo

POWERED BY:

Arquivado

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

onzzesystem

[Resolvido] Como fazer esta query?

Recommended Posts

Boa tarde gente. Estou quebrando a cabeça aqui tem tempos, e agora preciso de uma ajuda.

Vou abreviar.

Eu estou fazendo uma busca avançada, como nas buscas avançada de qualquer site. Eu tenho vários campos, mas o usuário preenche aquele campo que ele quer. Quanto mais campos ele vai preenchendo mais sua pesquisa sai refinada.

 

Eu tenho este form:

<form id="cadastrar_dados" name="form1" method="post" action="buscar_dados_avancado_lista.php">
				  <p>
				<label>Nome do usuário </label>
				<input name="codigo_usuario" type="text" />
				<label>Atlas</label><select name="atlas">
				 <option value="">Selecione um Atlas</option>
				  <option value="ATES">ATES</option>
				  <option value="ATMS">ATMS</option>
				</select>
				<label>Município</label><input  name="municipio" type="text" />
				<input class="button" value="Buscar Dados" type="submit" />		
				</p>	
			  </form>

Como eu faço uma query para buscar no banco de dados. Eu já tentei usando or, and, mas sempre qeu testo descubro que não fica como eu quero.

Se eu coloco and, se eu não preencher todos os campos, ele não me retorna o resultado que quero.

Se coloco or, me retorna muitos dados, não refinando a busca.

Alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o AND e nos campos que ficarem em branco coloque um % no lugar do texto

 

vou testar e já respondo... :(

 

 

 

Deu certo não cara. Olha minha query

 

$query = "select * from `dados` where 
							codigo_user = '$dados' and
							atlas LIKE '$atlas' and
							municipio LIKE '$municipio' and					
							estado LIKE '$estado'"

todas estas variáveis, $dados, $atlas, $municipio, $estado eu coloquei para receber um % caso elas estivessem vazias, mas não deu não.

Outra solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tentou fazer uma estrutura de ifs que concatenam a variável de consulta?

 

Algo nesse sentido:

 

$query = "SELECT * FROM dados";

if (isset($_POST['dados'])) {
	 $query .= " WHERE codigo_user = ".$_POST['dados'];
}

Tente e qualquer coisa volte a postar. abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi aqui. Assim como o Gustavo falou, qdo um campo for vazio, colocar o %.

Antes não funcionou, mas eu sentei aqui agora e testei como mais detalhes, substituií os campos e funcionou beleza.

if($_POST[codigo_usuario] == '')
		$codigo_usuario = '%';

Foi bom, pois vire e meche tem qeu fazer busca avançada, e desta maneira, tem como refinar mais a busca.

Valeu galera qeu ajudou, obrigado. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode se fazer assim também

 

select * from tabela where (campo1 = $variavel1) or (campo2 like '%$variavel2%') or (campo3 != $variavel3)

 

falow

 

Rodney.

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.