Ir para conteúdo

POWERED BY:

Arquivado

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

PH(:P

Consultar digitando uma parte dos dados no MYSQL

Recommended Posts

Pessoal, como faço para consultar num banco de dados (PHP+MySQL) uma determinada pessoa digitando apenas uma parte do nome. Exemplo: no form de pesquisa eu digito a palavra: "pedro" e clico em Pesquisar. É claro que o resultado seria achar qualquer pessoa que tenha "pedro" no nome. Mas é isso mesmo que eu quero. Outro exemplo, eu digito: "fernanda lemos" e o resultado seria todas as pessoas que tenham o nome "fernando lemos", tipo, fernanda lemos soares, fernanda lemos da cunha, e assim vai... Sacou? Meu sistema está tudo ok, apache2+php4+mysql4 - a conexão com BD também, consigo até buscar o nome da pessoa mas tenho que digitar sempre o nome completo da pessoa. Tipo, não pode faltar nem se quer um espaço ou um acento.String? mas como?"SANDRO" LOGO ACHA O NOME COMPLETO"SANDRO MOREIRA""SANDRO DA SILVA COSTA""HERNESTRO SANDRO SOARES"Acho que expliquei bem a parada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa o like no seu sql, isso resolve.exemplo:"SELECT * FROM clientes WHERE nomes LIKE '%wilner%'";Qualquer dúvida posta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa o like no seu sql, isso resolve.

exemplo:

 

"SELECT * FROM clientes WHERE nomes LIKE '%wilner%'";

 

Qualquer dúvida posta.

<{POST_SNAPBACK}>

 

estou usando este código, e está funcionando:

 

$con = mysql_connect("localhost","","");

$select_db = mysql_select_db("clientes");

 

$nome= $_POST["nome"];

 

$q = mysql_query("SELECT * from clientes WHERE nome LIKE '$nome',$con);

$num = mysql_num_rows($q);

 

 

é este código que quero resolver para buscar no banco de dados digitando somente uma parte do nome completo

 

Quem puder ajudar!

 

 

"procurar pela palavra "TAL" no campo "NOME" trazendo pra tela todos os registros que contiver "TAL" em seu conteúdo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP

[*]$con = mysql_connect("localhost","","");

[*]$select_db = mysql_select_db("clientes");

[*]

[*]$nome= $_POST["nome"];

[*]

[*]$q = mysql_query("SELECT * from clientes WHERE nome LIKE '%$nome%'",$con);

[*]$num = mysql_num_rows($q);

 

ou assim

 

PHP

[*]

[*]$con = mysql_connect("localhost","","");

[*]$select_db = mysql_select_db("clientes");

[*]

[*]$nome= $_POST["nome"];

[*]

[*]$q = "SELECT * from clientes WHERE nome LIKE '%$nome%'";

[*]$result = mysql_query($q,$con);

 

Tenta ai e fala o que aconteceu ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP

[*]$con = mysql_connect("localhost","","");<br />$select_db = mysql_select_db("clientes");<br /><br />$nome= $_POST["nome"];<br /><br />$q = mysql_query("SELECT * from clientes WHERE nome LIKE '%$nome%'",$con);<br />$num = mysql_num_rows($q);

 

ou assim

 

PHP

[*]$con = mysql_connect("localhost","","");<br />$select_db = mysql_select_db("clientes");<br /><br />$nome= $_POST["nome"];<br /><br />$q = "SELECT * from clientes WHERE nome LIKE '%$nome%'";<br />$result = mysql_query($q,$con);

 

Tenta ai e fala o que aconteceu ...

<{POST_SNAPBACK}>

 

 

FUNCIONOU! É FALTAVA O % NO CÓDIGO!

 

Carakas! Acho que meu sistema vai ficar show.... :) Valeu Castor Jr. !!!

 

É bem provável que eu poste mais algumas dúvidas em breve... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tô achando até baratas e cupim no banco de dados! uhuuuuuuÉ a satisfação de ter um forum como iMasters. Daqui a pouco estarei MASTER em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo PH( :P deixa eu te dar uma explicação caso você naum saiba utilizar direito o comando like....

 

Tipo esse % eh usado pra você indicar que pode ter algo a mais pra determinada localização, deixa eu explicar melhor com exemplos...

 

Se você fizer campo like '$busca' nesse caso sem o % ele vai buscar a palavra exata....

 

Agora se for assim campo like '$busca%' você pode ver que o % esta soh no final e se você digamos tem as seguintes palavars no banco

Eduardo

João

Ricardo

Edmundo

E fizer uma busca com as letras do ele naum vai lhe trazer nada pois esse com o % no final soh mostra se o começo da palavra for igual.. dai nesse caso se você coloca-se Ed ele vai te trazer Eduardo e Edmundo....

 

Agora se você usar assim campo like '%$busca' e no mesmo conjunto de palavras você fizer a busca por do ele vai trazer os nomes Eduardo, Edmundo e Ricardo, mas nesse caso ele soh vai comparar soh com o final das palavras no banco...

 

E por ultimo se você fizer campo like '%$busca%' com o % nas duas pontas da variavel ele vai fazer a busca independendo da posição onde estiver a sequencia de caracteres que você digitar....

 

Agora se você jah sabia disso entaum disconsidere tudo oke eu escrevi logo ali em cima heheh :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revivendo o post.

 

E se eu quiser fazer essa mesma pesquisa, pelas partes do nome só que com duas palavras tem como?

 

Ex:

Pedro Leonardo

Joao Levinsko

Peixoto Lemos

 

E eu pesquisasse somente Pe + Le: e ele me retornasse os nomes correspondentes

 

Pedro Leonado

Peixoto Lemos

 

Muito grato se alguém puder responder

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revivendo o post.

 

E se eu quiser fazer essa mesma pesquisa, pelas partes do nome só que com duas palavras tem como?

 

Ex:

Pedro Leonardo

Joao Levinsko

Peixoto Lemos

 

E eu pesquisasse somente Pe + Le: e ele me retornasse os nomes correspondentes

 

Pedro Leonado

Peixoto Lemos

 

Muito grato se alguém puder responder

 

 

Olá sidnei.weber!

 

Segue exemplos da primeira pergunta:

Atenção: Observe a posição do símbolo '%' na string SQL.

 

$nome1 = "Pedro Leonado";

$sql1 = "SELECT * from tabela WHERE nome LIKE '%$nome1'"; // aqui o NOME inicia com "Pedro Leonardo". Ex: 'Pedro Leonardo' dos Santos

 

$nome2 = "Peixoto Lemos";

$sql2= "SELECT * from tabela WHERE nome LIKE '%$nome2%'"; // aqui o NOME contém "Peixoto Lemos". Ex: Daniel 'Peixoto Lemos', Patrícia 'Peixoto Lemos' de Oliveira...

 

 

Segue um exemplo básico da segunda pergunta:

 

$campo1 = "Pe";

$campo2 = "Le";

 

$sql = "SELECT * from tabela WHERE nome LIKE '%$campo1%' OR nome LIKE '%campo2%'" // aqui acha os nomes 'Pedro Leonado' e 'Peixoto Lemos' porque contém as strings "Pe" e "Le" no nome.

 

Existe outras maneiras de montar essa busca, mas vai testando os exemplos acima.

 

Qualquer dúvida estaremos aqui no fórum IMASTERS.

 

 

[]s

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.