moisesf Posted March 31, 2012 Report Share Posted March 31, 2012 Fiz uma função que retira todos os acentos da string e a chamo duas vezes.A primeira que vem do form com o nome $nome_clinica$nomeclinica=stringRetiraAcento($nome_clinica);A segunda chamo dentro do select.$sql = "select * from medicos_end_atend where ".stringRetiraAcento('nome_clinica')." REGEXP '$nomeclinica' and cep_clinica='$cep_clinica'";A string que vem do form está sendo convertida, mas a que está vindo do banco de dados não.Será que minha chamada no select está errada?$sql = "select * from medicos_end_atend where ".stringRetiraAcento('nome_clinica')." REGEXP '$nomeclinica' and cep_clinica='$cep_clinica'";Obrigado; Quote Link to comment Share on other sites More sharing options...
0 JaguA Posted April 1, 2012 Report Share Posted April 1, 2012 você não deve colocar nenhum tipo de sintaxe na string da query ... fassa o select normalmente depois na hora de dar o print / echo ou passar o valor a uma variavel você chama a function. Quote Link to comment Share on other sites More sharing options...
0 moisesf Posted April 1, 2012 Author Report Share Posted April 1, 2012 (edited) você não deve colocar nenhum tipo de sintaxe na string da query ... fassa o select normalmente depois na hora de dar o print / echo ou passar o valor a uma variavel você chama a function.Mas eu preciso de comparar o que há no banco de dados sem acentos e cedilhas.Ou seja, deixar tanto a palavra de busca e o que há no banco de dados no mesmo formato para se fazer a comparação, desta forma acharia tanto com acento e sem acento na busca.Ou estou usando o método errado?Tem alguma ideia?Se eu der um select em tudo para depois comparar, acho que ficaria muito pesado quando o banco tiver muitos registros. Edited April 1, 2012 by moisesf Quote Link to comment Share on other sites More sharing options...
0 moisesf Posted April 1, 2012 Author Report Share Posted April 1, 2012 Fiz o seguinte para funcionar:Dei o loop em todos os dados para achar o cep e somente depois converti a string nome_clinica para sem acento e sem cedilha.Mas o problema agora é que acha somente com o nome da clínica idêntico.Como fazer este tipo de comparação no if, para listar também as que iniciam com clínicas?Por exemplo, se na busca colocar apenas clínica, listaria todas as clínicas daquele cep que encontrei no select.$sql = "select * from medicos_end_atend where cep_clinica='$cep_clinica'"; $pesquisa_endereco=mysql_query($sql) or die ("Não foi possível realizar a consulta nos endereços de Atendimento"); $contareg = mysql_num_rows($pesquisa_endereco); if ( $contareg >= 1 ) { while($linha=mysql_fetch_array($pesquisa_endereco)){ $nomeencontrado=$linha["nome_clinica"]; $comparanome=stringRetiraAcento($nomeencontrado); } if ($comparanome == $nomeclinica) { echo '<span style="color:red;">Registro Encontrado</span>'; } else { echo '<span style="color:green;">Registro não Encontrado</span>'; } } Quote Link to comment Share on other sites More sharing options...
0 JaguA Posted April 1, 2012 Report Share Posted April 1, 2012 coloca na queryLIKE %clinica% and WHERE cep = 'cep' Quote Link to comment Share on other sites More sharing options...
0 moisesf Posted April 1, 2012 Author Report Share Posted April 1, 2012 coloca na queryLIKE %clinica% and WHERE cep = 'cep'Não posso fazer like no nome_clinica no select, pois preciso antes da comparação, converter o que vem do banco de dados para sem acento e sem cedilha.A comparação está sendo feita no if Quote Link to comment Share on other sites More sharing options...
0 JaguA Posted April 1, 2012 Report Share Posted April 1, 2012 você não mando para o banco sem acento e sem cedilha?então tira os acentos logo depois de receber da input ou seja la como for os acento e cedilhas e depois faz o like.se no banco tem acento manda direito com acento. Quote Link to comment Share on other sites More sharing options...
Question
moisesf
Fiz uma função que retira todos os acentos da string e a chamo duas vezes.
A primeira que vem do form com o nome $nome_clinica
$nomeclinica=stringRetiraAcento($nome_clinica);
A segunda chamo dentro do select.
$sql = "select * from medicos_end_atend where ".stringRetiraAcento('nome_clinica')." REGEXP '$nomeclinica' and cep_clinica='$cep_clinica'";
A string que vem do form está sendo convertida, mas a que está vindo do banco de dados não.
Será que minha chamada no select está errada?
Obrigado;
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.