PH(:P 0 Denunciar post Postado Agosto 31, 2005 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
Castor Jr. 0 Denunciar post Postado Agosto 31, 2005 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
PH(:P 0 Denunciar post Postado Agosto 31, 2005 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
Castor Jr. 0 Denunciar post Postado Setembro 1, 2005 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
PH(:P 0 Denunciar post Postado Setembro 1, 2005 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
PH(:P 0 Denunciar post Postado Setembro 1, 2005 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
wolfphw 60 Denunciar post Postado Setembro 1, 2005 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
PH(:P 0 Denunciar post Postado Setembro 1, 2005 Valeu mesmo e obrigado pela ajuda!Tenho certeza que este tópico tirará as dúvidas dos iniciantes em PHP Compartilhar este post Link para o post Compartilhar em outros sites
sidnei.weber 0 Denunciar post Postado Novembro 1, 2012 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
PH(:P 0 Denunciar post Postado Novembro 2, 2012 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