Jump to content


Photo

Colocando Espaços Em Branco Na Busca


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

#1 rwar

rwar

    12 Horas

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

Posted 30/09/2005, 15:27

Estou fazendo uma busca em três campos de uma tabela com uma só palavra, porém está retornando resultados que não satisfazem a busca.

Por exemplo, o usuário digita a palavra "cidade" no campo de busca, retorna autenticidade, multiplicidade, etc... Como evitar este tipo de resultado?

Aqui está o sql que estou fazendo:
$sql =	"SELECT s.id_servico, s.nome_servico, s.descricao_resumida
FROM csi_servico s
WHERE (UPPER(s.palavra_chave) LIKE UPPER('%$busca%') OR
UPPER(s.nome_servico) LIKE UPPER('%$busca%') OR
UPPER(s.descricao_resumida) LIKE UPPER('%$busca%')) AND
ind_visivel_servico=1 AND ind_situacao=2
ORDER BY upper(s.nome_servico)";

Edição feita por: rwar, 30/09/2005, 15:28.


#2 mezzo

mezzo

    Turista

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

Posted 30/09/2005, 16:02

retirando o sinal de porcentagem (%)
|-----> mezzo passou por aqui <-----|

MSN -> thunderbird_mm@hotmail.com
ICQ -> 122856682

#3 rwar

rwar

    12 Horas

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

Posted 30/09/2005, 16:06

Sem o % não retorna nada. :huh:

#4 mezzo

mezzo

    Turista

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

Posted 30/09/2005, 16:29

retira da frente ou de tras então...
|-----> mezzo passou por aqui <-----|

MSN -> thunderbird_mm@hotmail.com
ICQ -> 122856682

#5 rwar

rwar

    12 Horas

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

Posted 30/09/2005, 16:45

Mas vai cair na mesma. Se tiver, por exemplo, cidadezinha (que exemplo tosco, mas...) e multiplicidade, vai pegar um dos dois, de acordo com o sinal % excluído. (y)

Precisaria de algo que realmente pegasse somente a cidade, sem chance de pegar conteúdo no início ou no final da palavra... :unsure:

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 30/09/2005, 17:54

Não use LIKE. ^_^

[]’s :D Até mais

#7 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/10/2005, 04:48

Experimenta: LIKE '% $busca %'.


[]'s
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 01/10/2005, 05:18

Mas ... se ele quer uma busca direta, não seria melhor WHERE `campo`= 'texto_buscado' ??? :rolleyes:

[]’s :DAté mais

#9 rwar

rwar

    12 Horas

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

Posted 03/10/2005, 10:13

O problema é este, pessoal. Os campos tem os seguintes textos, respectivamente:

nome_servico ===> Consulta a autenticidade de Contra-cheque e/ou Comprovante de Rendimentos de servidores públicos


descricao_resumida ===> Serviços de autenticidade de informações de documentos dos servidores públicos para uso pelo comércio e demais entidades.


descricao_completa ===> O serviço possibilita aos estabelecimentos comerciais ou financeiros a confirmação da autenticidade de contra-cheques e/ou
comprovante de rendimentos apresentados por servidores públicos estaduais.


Se fizer apenas com o sinal de igualdade, nunca trará um resultado, pois há mais palavras no campo.

Vou fazer uma pesquisa se há algum "IN" da vida no PostGreSQL, como há no MySQL, e se há a possibilidade de aplicá-lo a este caso. Valeu a todos por enquanto.




1 user(s) are reading this topic

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

IPB Skin By Virteq