Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 64
Sexo: Masculino

Pesquisa mais dinâmica

17-03-2012 08:56

Olá a todos novamente!
Estou passando por uma pequena no meu formulário de busca.

Exemplo de como estou fazendo:

$exp = explode(" ", $identificacao); // separando pelo espaço
$imp = implode("%", $exp); // unindo os valores pelo |
$sql=mysql_query("SELECT nome,ano FROM cadastros WHERE identificacao LIKE '%$imp%' order by ano DESC");

Ai funciona ok! Por exemplo:

Pesquisar o nome:

Maria Joana Silva. Se eu digitar:

Maria Silva, aparece ok.
Joana Silva, aparece ok.
Maria Silva, aparece ok.

O problema é que preciso digitar Silva Maria ou Silva Joana (De trás pra frente e aparecer também). Exemplo:

Silva Joana, resultados não encontrados.
Silva Maria, resultados não encontrados.
Silva Joana Maria, resultados não encontrados.

O que preciso é também da ordem inversa.

Agradeço!

Vlw! ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17586
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Pesquisa mais dinâmica

17-03-2012 11:54

Como é um array, você pode usar o array_reverse() do PHP

<?php $identificacao = "a b c"; $exp = explode(" ", $identificacao); // separando pelo espaço $imp = array_reverse($exp); $ex = implode("%", $imp); // unindo os valores pelo | echo $ex; ?>

Ai você pode adicionar um OR na sua consulta, para usar esse valor invertido.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 64
Sexo: Masculino

Pesquisa mais dinâmica

17-03-2012 14:59

Certinho como sempre web!
Consegui inverter e buscar beleza.
Só mais uma dúvida. Não estou conseguindo usar o OR, como fica a sintaxe?

Como está ou funcionando:

$sql=mysql_query("SELECT nome,ano FROM cadastro WHERE nome LIKE '%$imp1%' order by ano DESC");

ou assim:

$sql=mysql_query("SELECT nome,ano FROM cadastro WHERE nome LIKE '%$imp2%' order by ano DESC");

Mas os dois juntos não consegui:

$sql=mysql_query("SELECT nome,ano FROM cadastro WHERE nome LIKE '%$imp1%' OR '%$imp2%' order by ano DESC");

Apresentar erro.

Outro método que pensei que pode ser melhor:

Concatenar as duas strings. Porque ai fica assim:

$string1 = "Maria Azevedo Silva";
$string2 = "Silva Azevedo Maria";
$string3 = $string1."%".$string2;

Ai depois coloca:

$sql=mysql_query("SELECT nome,ano FROM cadastro WHERE nome LIKE '%$string3%'' order by ano DESC");

Só que ai vou juntar o $imp1 e o $imp2, porém tentei e o resultado não volta nada. Nem quando eu digito só Maria por exemplo.

Acho que se juntar as duas strings e desce certo o resultado seria melhor, porque cobria praticamente todos os casos de digitação.

Agradeço.

Vlw! ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17586
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Pesquisa mais dinâmica

17-03-2012 15:02

Seria assim

$sql=mysql_query("SELECT nome,ano FROM cadastro WHERE nome LIKE '%$imp1%' OR nome LIKE '%$imp2%' order by ano DESC");
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 64
Sexo: Masculino

Pesquisa mais dinâmica

17-03-2012 15:15

Beleza perfeito! ;) :rock:
Quanto ao segundo modo que perguntei tem jeito mesmo não né?

Vlw.
0
 
Mais de 50 postagens
Mais de 50 postagens
Tópico Autor
Mensagens: 64
Sexo: Masculino

Pesquisa mais dinâmica

17-03-2012 15:33

Deu certo web! Fiz um pouqinho diferente.

Já que o número de palavras não passam de 6 e a primeira tem que ser digitada depois da segunda, a segunda tem que ser digitada depois da terceira, a quarta depois da quinta, fica como se eu divessse 3 palavras podendo ter 6 combinações de digitação

Ai fiz 6 palavras, utilizando o array e concatenando com as outras.

Você é bruto web!

Vlw! ;)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17586
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Pesquisa mais dinâmica

17-03-2012 16:49

;)
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado