Jump to content


Photo

Mais Um Problema Com Buscas


  • Faça o login para participar
3 replies to this topic

#1 Dargo

Dargo

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

Posted 28/01/2009, 20:15

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

#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

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

#3 Dargo

Dargo

    12 Horas

  • Usuários
  • 124 posts
  • Sexo:Não informado

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

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 29/01/2009, 14:01

Mas então rapaz,

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




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq