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)