Ir para conteúdo

POWERED BY:

Arquivado

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

Walter Junior

Problema com o campo pesquisa

Recommended Posts

Pessoal, estou com um problema eu tenho um formulario de pesquisa e não estou conseguindo fazer ele pesquisar so uma parte do nome, so pesquisa se o nome for completo, alguem pode me ajudar, abraço. A pesquisa tanto pelo nome completo ou pelo cpf estão funcionando beleza.

 

$query1 = "select * from contrato where nome='$nome'OR cpf='$cpf'";
if ($nome != ''){
	$query1 ."= LIKE '%$nome%'";
}
if ($cpf != ''){
	$query1 ."= '$cpf'";	
}

$query = mysql_query($query1);
$result = mysql_query($query1) or die('A consulta falhou!: ' . mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte, nem uma das duas maneiras que você falou deu certo, tenter colocar na query também não da certo, o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imprime como fica a query no momento da execução da mesmo aqui pra eu ver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só como vai ficar a query:

 

$query1 = "select * from contrato where nome='$nome'OR cpf='$cpf'";
// se $nome for diferente de '', ela será concatenada, ficando assim:
"select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%'";
// se $cpf for diferente de '', sofrerá uma nova concatenação:
"select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%' = '$cpf'";

Neste caso, você terá uma string assim:

 

"select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%' = '$cpf'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz assim, mais não quer dar certo, ta do mesmo geito de antes.

 

$query1 = "select * from contrato where nome='$nome' OR cpf='$cpf'";
if ($nome != ''){
	$query1."=select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%'";

}
if ($cpf != ''){
				$query1."=select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%' = '$cpf'";	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque um OR DIE na query e veja se retorna algum erro:

 

mysql_query("select * from contrato where nome='$nome'OR cpf='$cpf' = LIKE '%$nome%' = '$cpf'")or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem um erro na sintaxe de seu SQL próximo a 'LIKE '%maria%' = ''' na linha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, é na sintaxe do LIKE mais de toda maneira que coloca da erro. Mais so da esse erro quando eu procuro pela parte do nome, se ele coloco o nome todo ou pesquiso por cpf funciona legal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim......

 

$query1 = "SELECT * FROM contrato WHERE ";
if ($nome != '')
{
	$query1 .= "nome LIKE '%".$nome."%'";
}
if ($cpf != ''){
	$query1 .= " OR cpf = '".$cpf."'";	
}

$query = mysql_query($query1);
$result = mysql_query($query1) or die('A consulta falhou!: ' . mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ainda não vi como fica a query no momento da execução...

É um problema muito simples, onde basta você debugar a query pra entender o erro.

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.