Ir para conteúdo

POWERED BY:

Arquivado

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

alexandre_prog

pesquisar um CPF no banco com ou sem máscaras

Recommended Posts

Pessoal como eu faço pra pesquisar um CPF no banco com ou sem máscaras...

 

 

O problema é que já tenho dados no banco, e as máscaras estão mal feitas...

 

Tipo assim ó:

 

"xxx.xxx.xxx-xx"..."xxxxxx.xxx-xx"..."xxxxxxxxx-xx"..."xxx.xxxxxx-xx"..."xxx.xxx.xxxxx",,,,

 

 

Como fazer um Select pra isso??

 

 

Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer uma másc. correta, e guardar no BD, sem ^^

OK,,,... Um máscara correta???

 

Como eu disse, eu tenho um Banco aqui com dados Já Cadastrados!!

 

E o Cliente fica a vontade pra gravar como quiser o CPF!!

 

Será que só na gambiarra mesmo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que só na gambiarra mesmo???

 

Padroniza todos os registros. Pode fazer usando expressões regulares.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que só na gambiarra mesmo???

 

Padroniza todos os registros. Pode fazer usando expressões regulares.

Como eu te disse, daqui em diante vou pradronizá-los, mas e os registros que já estavam cadastrados??

 

O que fazer com eles??

 

Poderia criar uma rotina pra pradronizar todos, mas não seria conveniente pra mim!!

 

O que mais fazer??

 

Obrigado pela preocupação!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei como você resolveu, mas vou dizer o que eu faria.

 

O ideal é padronizar tudo agora. Basta criar um script que altere os campos retirando todos os pontos e traços. Eu usaria um campo inteiro, tomando o cuidado de não ignorar os CPFs iniciados por zero (usando printf()).

 

Daí é fácil salvar e pesquisar os CPFs.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui resolver meu problema,

 

podem, encerrar o tópico!

 

Obrigado!

Ia falar pra você fazer uma consulta em todos os registros dessa tabela e daí fazer um loop no resultado, alterando o campo cpf:

 

"UPDATE"
	. " `tabela`"
. " SET"
	. " `campo_cpf` = '" . str_replace("-","",str_replace(".","",$registroCPF)) . "'" // aqui deixamos sem formatação, mas você pode deixar como quiser
. " WHERE"
	.  " `campo_id` = '" . $registroID . "'";

[x]´s

 

Rafael Mussi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então ;;;;

 

Achei um jeito mais simples de fazer isso...

 

Estou usando o Interbse, e ele tem um comando que se chama CONTAINING, é parecido com o LIKE do mysql...

 

e FIZ assim:::

 

 

$cpf = $_GET['cpf'];

$q = "SELECT * FROM tabela WHERE cpf containing '".substr($cpf,0,3)."' and cpf containing '".substr($cpf,3,3)."' and cpf containing '".substr($cpf,6,3)."' and cpf containing '".substr($cpf,9,2)."'";

 

 

GAMBIARRA PURA

 

 

adoro fazer,

 

KKKKKkkkkkkkkkkkk

 

Obrigado a Todos,

 

realmente o pessoal desse forum está de parabens, sempre dispostos a ajudar os outros!!!

 

Muito Obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes que dêem o tópico como resolvido:

Esse script me ajuda bastante.

Aqui na empresa eu utilizo ele quando o cliente tem a liberdade de colocar qualquer valor como CPF ou CNPJ.

Exemplo: O cara vai fazer uma venda pequena mas precisa cadastrar o cliente, mas ele não acha necessário solicitar o CPF ou o CNPJ, já que o pagamento vai ser a vista.

Esse script funciona da seguinte forma:

Até uma certa quantidade de caracteres ele formata a entrada do usuário utilizando a máscara de CPF. Após a quantidade de dígitos ultrapassar um limite ele utiliza a máscara de CNPJ.

Mas ele não faz validação: Ele só formata. Ok?

 

Tá aí:

 

// JavaScript Document
function formataCnpjCpf(cpf,campo,form,evento) {
	var tipo = "";
	for (i = 0; i < campo.form.elements.length; i++) {
//		alert(campo.form.elements[i].name + ", " + cpf);
		// só seta o tipo da pessoa se ele estiver marcado
		if (campo.form.elements[i].name== cpf
			&& campo.form.elements[i].checked) {
			tipo = campo.form.elements[i].value;
			break;
		}
	}
	
	// se cpf estiver marcado
	if (tipo == '' || tipo == 'F') {
		formataCPF(campo,form,evento);
	} else {	
		formataCNPJ(campo,form,evento);	
	}
}

/**
 * Formata CPJ e CNPJ. Caso o tamanho exceda o limite do 
 * CPF é automaticamente convertido em máscara de CNPJ
 */
function formatarCnpjCpf(campo,form,evento) {
	var re = /[^0-9]/gi;
	  var valor = campo.value;
	valor = valor.replace(re,"");
	var tam   = valor.length;
	// menor do que 11 caracteres é um cpf
	if (tam <= 11) {
		formataCPF(campo,"",evento);
	} else {	
		formataCNPJ(campo,form,evento);	
	}
}
/**
 * Formata campo no formato de CPF.
 */
function formataCPF(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 3 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 3 ) && ( tam <= 6 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,tam);
  }else if ( ( tam > 6 ) && ( tam <= 9 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,6)+"."+ valor.substring(6,tam);
  }else if ( tam > 9 ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,6)+"."+ valor.substring(6,9)+ "-"+valor.substring(9,tam);
  }

  if ( campo.value.length >= 14 ){
	 campo.value = campo.value.substring(0,14);
	 if ( form != "" ) campo.form[form].focus();
  }
}

/**
 * Formata o dado no padrão de CNPJ	
 */
function formataCNPJ(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 2 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 2 ) && ( tam <= 5 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,tam);
  }else if ( ( tam > 5 ) && ( tam <= 8 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+ valor.substring(5,tam);
  }else if ( ( tam > 8 ) && ( tam <= 12 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+valor.substring(5,8)+"/"+ valor.substring(8,tam);
  }else if ( tam > 12 ){
	  campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+valor.substring(5,8)+"/"+ valor.substring(8,12)+ "-"+valor.substring(12,tam);
  }

  if ( campo.value.length >= 18 ){
	 campo.value = campo.value.substring(0,18);
	 if ( form != "" ) campo.form[form].focus();
  }
}

/**
 * Formata campo no formato de CPF.
 */
function formataIE(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 3 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 3 ) && ( tam <= 9 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,tam);
  }else if ( ( tam > 9 ) && ( tam <= 11 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,9)+"."+ valor.substring(9,tam);
  }else if ( tam > 11 ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,9)+"."+ valor.substring(9,11)+ "-"+valor.substring(11,tam);
  }

  if ( campo.value.length >= 16 ){
	 campo.value = campo.value.substring(0,16);
	 if ( form != "" ) campo.form[form].focus();
  }
}

Você chama ele assim:

<input type="text" name="tfCpfCnpj" maxlength="19" onKeyPress="formatarCnpjCpf(this,'', event);" id="cpf">

Obs.: Ele não valida, ok? Se alguém quizer fazer isso vai ser bacana. ;)

Ele funciona no FF e no IE. Acho que no Opera também.

Fiz um exemplo e mandei pro server pra mostrar pra vocês. Olha ae como funciona:

Formata CPF || CNPJ

 

Desculpem postar esse script aqui, mas acho que serve pra uma galera ae.

Admins e moderadores: Movam o tópico se acharem conveniente :)

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes que dêem o tópico como resolvido:

Esse script me ajuda bastante.

Aqui na empresa eu utilizo ele quando o cliente tem a liberdade de colocar qualquer valor como CPF ou CNPJ.

Exemplo: O cara vai fazer uma venda pequena mas precisa cadastrar o cliente, mas ele não acha necessário solicitar o CPF ou o CNPJ, já que o pagamento vai ser a vista.

Esse script funciona da seguinte forma:

Até uma certa quantidade de caracteres ele formata a entrada do usuário utilizando a máscara de CPF. Após a quantidade de dígitos ultrapassar um limite ele utiliza a máscara de CNPJ.

Mas ele não faz validação: Ele só formata. Ok?

 

Tá aí:

 

// JavaScript Document
function formataCnpjCpf(cpf,campo,form,evento) {
	var tipo = "";
	for (i = 0; i < campo.form.elements.length; i++) {
//		alert(campo.form.elements[i].name + ", " + cpf);
		// só seta o tipo da pessoa se ele estiver marcado
		if (campo.form.elements[i].name== cpf
			&& campo.form.elements[i].checked) {
			tipo = campo.form.elements[i].value;
			break;
		}
	}
	
	// se cpf estiver marcado
	if (tipo == '' || tipo == 'F') {
		formataCPF(campo,form,evento);
	} else {	
		formataCNPJ(campo,form,evento);	
	}
}

/**
 * Formata CPJ e CNPJ. Caso o tamanho exceda o limite do 
 * CPF é automaticamente convertido em máscara de CNPJ
 */
function formatarCnpjCpf(campo,form,evento) {
	var re = /[^0-9]/gi;
	  var valor = campo.value;
	valor = valor.replace(re,"");
	var tam   = valor.length;
	// menor do que 11 caracteres é um cpf
	if (tam <= 11) {
		formataCPF(campo,"",evento);
	} else {	
		formataCNPJ(campo,form,evento);	
	}
}
/**
 * Formata campo no formato de CPF.
 */
function formataCPF(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 3 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 3 ) && ( tam <= 6 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,tam);
  }else if ( ( tam > 6 ) && ( tam <= 9 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,6)+"."+ valor.substring(6,tam);
  }else if ( tam > 9 ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,6)+"."+ valor.substring(6,9)+ "-"+valor.substring(9,tam);
  }

  if ( campo.value.length >= 14 ){
	 campo.value = campo.value.substring(0,14);
	 if ( form != "" ) campo.form[form].focus();
  }
}

/**
 * Formata o dado no padrão de CNPJ	
 */
function formataCNPJ(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 2 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 2 ) && ( tam <= 5 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,tam);
  }else if ( ( tam > 5 ) && ( tam <= 8 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+ valor.substring(5,tam);
  }else if ( ( tam > 8 ) && ( tam <= 12 ) ){
	 campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+valor.substring(5,8)+"/"+ valor.substring(8,tam);
  }else if ( tam > 12 ){
	  campo.value = valor.substring(0,2)+"."+valor.substring(2,5)+"."+valor.substring(5,8)+"/"+ valor.substring(8,12)+ "-"+valor.substring(12,tam);
  }

  if ( campo.value.length >= 18 ){
	 campo.value = campo.value.substring(0,18);
	 if ( form != "" ) campo.form[form].focus();
  }
}

/**
 * Formata campo no formato de CPF.
 */
function formataIE(campo,form,evento) {
  var tecla = evento.keyCode;
  var re = /[^0-9]/gi;
  valor = campo.value;
  valor = valor.replace(re,"");
  tam   = valor.length;
  if ( tecla == 46 ) tam = tam - 1; /* tecla delete */
  if ( tam <= 3 ){
	 campo.value = valor.substring(0,tam);
  }else if ( ( tam > 3 ) && ( tam <= 9 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,tam);
  }else if ( ( tam > 9 ) && ( tam <= 11 ) ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,9)+"."+ valor.substring(9,tam);
  }else if ( tam > 11 ){
	 campo.value = valor.substring(0,3)+"."+valor.substring(3,9)+"."+ valor.substring(9,11)+ "-"+valor.substring(11,tam);
  }

  if ( campo.value.length >= 16 ){
	 campo.value = campo.value.substring(0,16);
	 if ( form != "" ) campo.form[form].focus();
  }
}

Você chama ele assim:

<input type="text" name="tfCpfCnpj" maxlength="19" onKeyPress="formatarCnpjCpf(this,'', event);" id="cpf">

Obs.: Ele não valida, ok? Se alguém quizer fazer isso vai ser bacana. ;)

Ele funciona no FF e no IE. Acho que no Opera também.

Fiz um exemplo e mandei pro server pra mostrar pra vocês. Olha ae como funciona:

Formata CPF || CNPJ

 

Desculpem postar esse script aqui, mas acho que serve pra uma galera ae.

Admins e moderadores: Movam o tópico se acharem conveniente :)

 

[]'s

 

MMUIIITTTOOO ... BBBOOOMMM!!!!!

 

 

Estava procurando a muito tempo uma função "decente" que fizesse isso,

 

Meus Parabéns!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw man ;)

Tenho aqui também a de formatar CEP, telefone e mais um punhado.

Quando tiver um tópico apropriado eu coloco.

Ou então adiciona ae que te passo. :)

 

carlos150386 (arroba) hotmail

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.