Ir para conteúdo
Fórum Script Brasil
  • 0

Chamar uma função dentro do select


moisesf

Pergunta

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;

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
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.

Editado por moisesf
Link para o comentário
Compartilhar em outros sites

  • 0

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>';

}
}

Link para o comentário
Compartilhar em outros sites

  • 0
coloca na query

LIKE %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

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...