tenho este script de busca, mas esta me dado o seguinte erro, caso não seja preenchido nada nos campos do formulário,
me retorna todos os dados do BD.
[codebox] $nome =str_replace(" ", "%", $_POST['nome']);  
  $email =str_replace(" ", "%", $_POST['email']); 
  $fone=str_replace(" ", "%", $_POST['fone']); ;
  $os=str_replace(" ", "%", $_POST['os']); 
$qr = "SELECT * from ordem_servico WHERE os = '%".$os."%'  or  nome = '%".$nome."%' 
or fone = '%".$fone."%'  or email = '%".$email."%'  order by id desc ";
	// Carrega os registros 
	 $sql = mysql_query($qr); // Executa a query no Banco de Dados 
     $total = mysql_num_rows($sql); // Conta o total de resultados encontrados 	
	echo $total;
	  
	  while($r = mysql_fetch_array($sql)) { // Gera o Loop com os resultados 
        
		$id=$r["id"];	
		$nome=$r["nome"];
		$email=$r["email"];
		$fone=$r["fone"];
		$os=$r["os"];
		$efetuado=$r["efetuado"];
		$servico=$r["servico"];	
		$data=$r["data"];		
		[/codebox]
Agradeço a ajuda.
Dargo
					
					
					
				
				
				
				 
	
Mais Um Problema Com Buscas
		 Started By Dargo, 28/01/2009, 20:15
	
	
	
	
		3 replies to this topic
	
	
			
				
					
						
					
					#1
					 
					
				
				
				
					
				
			
				
			
			
			Posted 28/01/2009, 20:15
			
				
					
						
					
					#2
					 
					
				
				
				
					
				
			
				
			
			
			Posted 28/01/2009, 20:56
					Coloque uma condicional para verificar se algum campo foi preenchido. Se algum campo tiver sido preenchido, a condicional libera a consulta.
					
					
					
				
				
				
				
	
	att,
Muller Dias
ex-administrador Fórum WMO
				
				
				
			
				Muller Dias
ex-administrador Fórum WMO
			
				
					
						
					
					#3
					 
					
				
				
				
					
				
			
				
			
			
			Posted 29/01/2009, 08:35
					Ai é que esta, o cliente quer que a busca seja assim, por qualquer campo, então o usuário pode optar por preencher qualquer um dos campos, não sendo o brigatorio o preenchimento de todos.
ou pelo nome, ou pelo email, ou pelo telefone, ou pelo nº da os.
Mas se entra lá um ciadadão kker e clica no botão buscar, vem todos os dados, de todas as Ordens de Serviço
deveria vir uma busca em branco.
Não estou enxergando o erro.
Abraços
Ok Obrigado. Ja resolvido, o problema era na query.
[codebox]$qr = "SELECT * from ordem_servico WHERE nome like '" . $nome . "' or os like '" . $os . "'
or email like '" . $email . "' or fone like '" . $fone . "' ";[/codebox]
Agora esta funcionado ok.
Abraços
					
				
				
				
				ou pelo nome, ou pelo email, ou pelo telefone, ou pelo nº da os.
Mas se entra lá um ciadadão kker e clica no botão buscar, vem todos os dados, de todas as Ordens de Serviço
deveria vir uma busca em branco.
Não estou enxergando o erro.
Abraços
Ok Obrigado. Ja resolvido, o problema era na query.
[codebox]$qr = "SELECT * from ordem_servico WHERE nome like '" . $nome . "' or os like '" . $os . "'
or email like '" . $email . "' or fone like '" . $fone . "' ";[/codebox]
Agora esta funcionado ok.
Abraços
			
				
					
						
					
					#4
					 
					
				
				
				
					
				
			
				
			
			
			Posted 29/01/2009, 14:01
					Mas então rapaz,
A solução está no meu post anterior. Use condicional...
A busca só será realizada se algum campo estiver preenchido.
Mas você precisa da condicional só quando usar o coringa % na query. Sem o coringa não precisa da condicional.
					
				
				
				
				A solução está no meu post anterior. Use condicional...
if ($nome || $email || $fone || $email) {
	 /* Aqui o código da busca */
}A busca só será realizada se algum campo estiver preenchido.
Mas você precisa da condicional só quando usar o coringa % na query. Sem o coringa não precisa da condicional.
	
	att,
Muller Dias
ex-administrador Fórum WMO
				
				
				
			
				Muller Dias
ex-administrador Fórum WMO
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)


 
			
			 
				
				
				 
			
			








