Ir para conteúdo

POWERED BY:

Arquivado

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

Schlindwein

como procurar várias palavras no campo de busca

Recommended Posts

ola, estou a procura de um comando ou script de busca para procurar várias palavras no campo de busca. como exemplo no MYSQL tem pra procurar em todas as tabelas e a opção "todas as palavras1".

tanto faz a ordem que digita ele vai procurar no banco de dados e mostrar onde tem pelo menos uma das palavras

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola, estou a procura de um comando ou script de busca para procurar várias palavras no campo de busca.

 

Qual é a fonte dos dados ?

se for um banco SQL, veja sobre:

LIKE e o operador %

Compartilhar este post


Link para o post
Compartilhar em outros sites

exploda a lista de palavras com base nos espaços, vai receber um array de palavras.

 

Junte-as com implode no seguinte formato

 

$sql = "SELECT `produto` FROM `produtos` WHERE `nome` LIKE '%".implode("%' OR `nome` LIKE '%",$lista_de_palavras)."%'";

 

entendendo o funcionamento

 

implode junta os termos do array com base em uma string, passada no primeiro parâmetro

 

precisamos duma SQL no seguinte formato:

 

SELECT `campo` FROM `tabela` WHERE `campo` LIKE "%{valor}%" OR `campo` LIKE "%{valor}%" ...

 

a parte que nos interessa está em negrito e é repetitiva, vamos quebrá-la

 

`campo` LIKE "%{valor}%" OR

 

- o que está em preto, é a nossa variável

- o que está em vermelho é o começo

- o que está em azul é o fim

 

o que vamos fazer com a implode segue o seguinte padrão:

 

"string... {começo}".implode({fim} + {começo}, $array).{fim};

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu evandro vou tentar aqui creio que seja exatamente isso que eu estava a procura

muito obribado

qualquer duvida posto aqui até mais

 

o seguinte erro não busca pelo que foi procurado mas mostra todos os resultados

 

Warning: implode() [function.implode]: Invalid arguments passed in C:\AppServ\www\cadastro\busca.php on line 34

eu fiz o seginte

 

$sql = "SELECT * FROM `cadastro` WHERE `segmento` LIKE '%".implode("%' OR `segmento` LIKE '%",$busca)."%' ORDER BY rank DESC LIMIT $inicio, $limite ";

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.