Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho essa consulta funcionando perfeitamente em uma parte do sistema:
<?php
$doc = ($_POST['doc']);
if ($doc == ""){
echo "<p align=\"center\"><font face=arial size=2 color=#ff0000>Sem argumentos para verificar!<br><br></font><br><a href=\"javascript:history.go(-1)\"><img src=\"../../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";
}else{
$query_ver_sql = mysql_query("SELECT * FROM cad_cliente WHERE cli_cpf = '$doc' OR cli_cnpj = '$doc'");
$query_ver= mysql_num_rows($query_ver_sql); // conta quantos registros foram encontrados na query anterior
if($query_ver>0){
echo "<p align=\"center\"><font face=arial size=2>PFJ já cadastrada!<br><br></font><br><a href=\"javascript:history.go(-1)\"><img src=\"../../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";
} else {
header ("Location: form_cadastra_cliente.php");
}
}
?>
Mas essa outra não funciona.... Acredito que seja pq tem duas variáveis diferentes. Mas alguém me disse que o problema é que ele está consultando os dois campos e um deles sempre estará em branco, por isso retorna verdadeiro...
<?php
$cli_cpf = ($_POST['doc_cpf']);
$cli_cnpj = ($_POST['doc_cnpj']);
$query_ver_sql = mysql_query("SELECT * FROM cad_cliente WHERE cli_cpf = '$cli_cpf' OR cli_cnpj = '$cli_cnpj'");
$query_ver= mysql_num_rows($query_ver_sql); // conta quantos registros foram encontrados na query anterior
if($query_ver>0){
echo "<p align=\"center\"><font face=arial size=2>PFJ já cadastrada!<br><br></font><br><a href=\"javascript:history.go(-1)\"><img src=\"../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";
} else {
$sqlinsert = "INSERT INTO ....
Alguém pode me ajudar???
Nossa! Bacana... agora ele consegue distinguir qual dos campos está preenchido... Só que não consigo fazer "if" pra fazer consulta se já existe cadastrado ou não :(
[RESOLVIDO]
Bem... fiz umas modificações... ao invés de ter 2 campos, coloquei num campo só e usei um arquivo de validação que achei aqui no site.
//Puxamos os dados digitados no input
$cpfcnpj = $_POST["cli_cpfcnpj"];
if ($cpfcnpj == ""){
echo "<p align=\"center\"><font face=arial size=2 color=#ff0000>Sem argumentos para verificar!<br><br></font><br><a href=\"javascript:history.go(-1)\"><img src=\"../../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";//Retiramos os pontos, traços e barras
$cpfcnpj2 = preg_replace( "@[./-]@", "", $cpfcnpj );
/*Contamos quantos caracteres sobrou, digitados no input.
Se tiver 14 caracteres é um CNPJ;
Se tiver 11 caracteres é um CPF;//Chamamos o arquivo cpfcnpj.php para utilizar as funções valida_cnpj ou valida_cpf
include('cpfcnpj.php');
if ($caracteres==14) {
$cnpjverificado = valida_cnpj($cpfcnpj2);
if ($cnpjverificado==1) {
$query_ver_sql = mysql_query("SELECT * FROM c_cliente WHERE cli_cpfcnpj = '$cpfcnpj'");
$query_ver= mysql_num_rows($query_ver_sql);
if($query_ver>0){
echo "<p align=\"center\"><font face=arial size=2>CNPJ já cadastrado no sistema!<br><br></font><br><a href=\"javascript:history.go(-1)\"><img src=\"../../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";$sqlinsert = "INSERT INTO c_cliente (cli_id, cli_razao, cli_fantasia, cli_cpfcnpj, cli_ie, cli_im, cli_tipo, cli_cep, cli_end, cli_end_num, cli_bairro, cli_cidade, cli_uf, cli_pais, cli_cob_cep, cli_cob_end, cli_cob_end_num, cli_cob_bairro, cli_cob_cidade, cli_cob_uf, cli_cob_pais, cli_tipo_edif, cli_contato1, cli_contato2, cli_contato3, cli_funcao1, cli_funcao2, cli_funcao3, cli_tel_res1, cli_tel_res2, cli_tel_res3, cli_tel_cel1, cli_tel_cel2, cli_tel_cel3, cli_tel_com1, cli_tel_com2, cli_tel_com3, cli_tel_radio1, cli_tel_radio2, cli_tel_radio3, cli_tel_fax1, cli_tel_fax2, cli_tel_fax3, cli_email1, cli_email2, cli_email3, cli_obs, data_cadastro, hora_cadastro, cli_qtd_contrato, contrato_status_cli)
VALUES ('', '$cli_razao', '$cli_fantasia', '$cli_cpfcnpj', '$cli_ie', '$cli_im', '$cli_tipo', '$cli_cep', '$cli_end', '$cli_end_num', '$cli_bairro', '$cli_cidade', '$cli_uf', '$cli_pais', '$cli_cob_cep', '$cli_cob_end', '$cli_cob_end_num', '$cli_cob_bairro', '$cli_cob_cidade', '$cli_cob_uf', '$cli_cob_pais', '$cli_tipo_edif', '$cli_contato1', '$cli_contato2', '$cli_contato3', '$cli_funcao1', '$cli_funcao2', '$cli_funcao3', '$cli_tel_res1', '$cli_tel_res2', '$cli_tel_res3', '$cli_tel_cel1', '$cli_tel_cel2', '$cli_tel_cel3', '$cli_tel_com1', '$cli_tel_com2', '$cli_tel_com3', '$cli_tel_radio1', '$cli_tel_radio2', '$cli_tel_radio3', '$cli_tel_fax1', '$cli_tel_fax2', '$cli_tel_fax3', '$cli_email1', '$cli_email2', '$cli_email3', '$cli_obs', '$data_cadastro', '$hora_cadastro', '1', 'ATIVO')";
Mysql_query($sqlinsert) or die ("<p align=\"center\"><font face=arial size=2 color=#ff0000>Não foi possível cadastrar o cliente!<br><br></font>");
$id = mysql_insert_id();
echo "<div align=center><font face=arial size=2><br>Cliente <font face=arial size=2>'".$id."' - '".$cli_razao."' </font>foi inserido com sucesso em <font face=arial size=2 color=#ff0000>".$data_cadastro."</font> às <font face=arial size=2 color=#ff0000>".$hora_cadastro."</font>.<br><br>Redirecionando...";
echo "<script language=\"JavaScript\">function redireciona() {
window.location=\"../../siesa.php\";}
window.setTimeout('redireciona()', 2000);
</script>";
exit;
}
}
} else {
echo "<p align=\"center\"><font face=arial size=2>CNPJ inválido!</font>";
}
} else {
if ($caracteres==11) {
$cpfverificado = valida_cpf($cpfcnpj2);
if ($cpfverificado==1) {
$query_ver_sql = mysql_query("SELECT * FROM c_cliente WHERE cli_cpfcnpj = '$cpfcnpj'");
$query_ver= mysql_num_rows($query_ver_sql);
if($query_ver>0){
echo "<p align=\"center\"><font face=arial size=2>CPF já cadastrado no sistema!<br><br></font><a href=\"javascript:history.go(-1)\"><img src=\"../../imagens/voltar.jpg\" alt=\"Voltar\" border=\"0\" align=\"center\"></a>";
} else {
$sqlinsert = "INSERT INTO c_cliente (cli_id, cli_razao, cli_fantasia, cli_cpfcnpj, cli_ie, cli_im, cli_tipo, cli_cep, cli_end, cli_end_num, cli_bairro, cli_cidade, cli_uf, cli_pais, cli_cob_cep, cli_cob_end, cli_cob_end_num, cli_cob_bairro, cli_cob_cidade, cli_cob_uf, cli_cob_pais, cli_tipo_edif, cli_contato1, cli_contato2, cli_contato3, cli_funcao1, cli_funcao2, cli_funcao3, cli_tel_res1, cli_tel_res2, cli_tel_res3, cli_tel_cel1, cli_tel_cel2, cli_tel_cel3, cli_tel_com1, cli_tel_com2, cli_tel_com3, cli_tel_radio1, cli_tel_radio2, cli_tel_radio3, cli_tel_fax1, cli_tel_fax2, cli_tel_fax3, cli_email1, cli_email2, cli_email3, cli_obs, data_cadastro, hora_cadastro, cli_qtd_contrato, contrato_status_cli)
VALUES ('', '$cli_razao', '$cli_fantasia', '$cli_cpfcnpj', '$cli_ie', '$cli_im', '$cli_tipo', '$cli_cep', '$cli_end', '$cli_end_num', '$cli_bairro', '$cli_cidade', '$cli_uf', '$cli_pais', '$cli_cob_cep', '$cli_cob_end', '$cli_cob_end_num', '$cli_cob_bairro', '$cli_cob_cidade', '$cli_cob_uf', '$cli_cob_pais', '$cli_tipo_edif', '$cli_contato1', '$cli_contato2', '$cli_contato3', '$cli_funcao1', '$cli_funcao2', '$cli_funcao3', '$cli_tel_res1', '$cli_tel_res2', '$cli_tel_res3', '$cli_tel_cel1', '$cli_tel_cel2', '$cli_tel_cel3', '$cli_tel_com1', '$cli_tel_com2', '$cli_tel_com3', '$cli_tel_radio1', '$cli_tel_radio2', '$cli_tel_radio3', '$cli_tel_fax1', '$cli_tel_fax2', '$cli_tel_fax3', '$cli_email1', '$cli_email2', '$cli_email3', '$cli_obs', '$data_cadastro', '$hora_cadastro', '1', 'ATIVO')";
Mysql_query($sqlinsert) or die ("<p align=\"center\"><font face=arial size=2 color=#ff0000>Não foi possível cadastrar o cliente!<br><br></font>");
$id = mysql_insert_id();
echo "<div align=center><font face=arial size=2><br>Cliente <font face=arial size=2>'".$id."' - '".$cli_razao."' </font>foi inserido com sucesso em <font face=arial size=2 color=#ff0000>".$data_cadastro."</font> às <font face=arial size=2 color=#ff0000>".$hora_cadastro."</font>.<br><br>Redirecionando...";
echo "<script language=\"JavaScript\">function redireciona() {
window.location=\"../../siesa.php\";}
window.setTimeout('redireciona()', 2000);
</script>";
exit;
}
} else {
echo "<p align=\"center\"><font face=arial size=2>CPF inválido!</font>";
}
} else {
echo "<p align=\"center\"><font face=arial size=2>Digite corretamente o CPF ou CNPJ!</font>";
}
}
}
}
E esse é o arquivo cpfcnpj.php
<?php
/*
Ambas as funções foram criadas pelo Fabyo, membro do fórum do iMasters:
http://forum.imaster...er/13485-fabyo/
Valida CPF versao 1.2
http://forum.imaster...cpf-versao-1-2/
Valida CNPJ
http://forum.imaster...54-valida-cnpj/
*/
function valida_cpf($cpf){
for( $i = 0; $i < 10; $i++ ){
if ( $cpf == str_repeat( $i , 11) or !preg_match("@^[0-9]{11}$@", $cpf ) or $cpf == "12345678909" ) return false;
if ( $i < 9 ) $soma[] = $cpf{$i} * ( 10 - $i );
$soma2[] = $cpf{$i} * ( 11 - $i );
}
if(((array_sum($soma)% 11) < 2 ? 0 : 11 - ( array_sum($soma) % 11 )) != $cpf{9})return false;
return ((( array_sum($soma2)% 11 ) < 2 ? 0 : 11 - ( array_sum($soma2) % 11 )) != $cpf{10}) ? false : true;
}
function valida_cnpj($cnpj) {
if( strlen( $cnpj ) <> 14 or !is_numeric($cnpj) ){
return false;
}
$k = 6;
$soma1 = "";
$soma2 = "";
for( $i = 0; $i < 13; $i++ ){
$k = $k == 1 ? 9 : $k;
$soma2 += ( $cnpj{$i} * $k );
$k--;
if($i < 12) {
if($k == 1) {
$k = 9;
$soma1 += ( $cnpj{$i} * $k );
$k = 1;
} else {
$soma1 += ( $cnpj{$i} * $k );
}
}
}
$digito1 = $soma1 % 11 < 2 ? 0 : 11 - $soma1 % 11;
$digito2 = $soma2 % 11 < 2 ? 0 : 11 - $soma2 % 11;
return ( $cnpj{12} == $digito1 and $cnpj{13} == $digito2 );
}
?>
Agora funciona perfeitamente!
Obrigada pela ajuda!
<?php
$sql = '
FROM
cad_clienteWHERE
Se ambos estiverem preenchidos, usa um OR e compara-os, caso contrário, compara somente o que estiver preenchido. O código está bagunçado, e eu não testei, mas acredito que funcione, e você pode tentar organizá-lo, com ifs e tal. Fiz com operadores ternários para ir mais rápido só.
:thumbsup: