Sou iniciante no que se refere à importação e exportação de arquivos em PHP, então gostaria de dicas para a melhor forma para realizar as seguintes tarefas:
1 - Faço o upload múltiplo de "arquivos" xml (~10).
2 - Faço um loop dos arquivos do diretório e abro 1 à 1.
3 - Leio o arquivo, linha por linha.
4 - Comparo para vê se o dado já existe no banco.
5 - Se não existir, vou inserirndo no banco de dados.
6 - No final gravo um arquivo txt com o log das operações NÃO reazlizadas (ou seja somente os os erros).
OBS:
1 - Já tenho um código para isso, porém não para vários arquivos.
Pergunta
gsguma
Olá Pessoal,
Sou iniciante no que se refere à importação e exportação de arquivos em PHP, então gostaria de dicas para a melhor forma para realizar as seguintes tarefas:
1 - Faço o upload múltiplo de "arquivos" xml (~10).
2 - Faço um loop dos arquivos do diretório e abro 1 à 1.
3 - Leio o arquivo, linha por linha.
4 - Comparo para vê se o dado já existe no banco.
5 - Se não existir, vou inserirndo no banco de dados.
6 - No final gravo um arquivo txt com o log das operações NÃO reazlizadas (ou seja somente os os erros).
OBS:
1 - Já tenho um código para isso, porém não para vários arquivos.
2 - Utilizo a classe "simplexml.class.php".
3 - Existem arquivos com ~5.000 usuários ou +.
4 - Qualquer sugestão é bem vinda!
Código do arquivo Xml:
Código atual PHP (para 1 arquivo por vez):<?PHP session_start(); if(!$_SESSION['SSlogado']){ header("location: ../login/index_adm.htm"); } require_once "simplexml.class.php"; $err = 0; //erros $exe = 0; //executados if ($_FILES["cpfile"]["tmp_name"]!=""){ //if (isset($_FILES["cpfile"]["tmp_name"])){ $processo=false; //erro ao processar $nome = date("YmdHis") . $_FILES["cpfile"]["name"]; $pathxml = getcwd() . "/arq/" . $nome; if (is_uploaded_file($_FILES["cpfile"]["tmp_name"])){ if(!move_uploaded_file($_FILES["cpfile"]["tmp_name"], $pathxml)){ echo "Ocorreu um erro inesperado ao carregar o arquivo.<br />"; } } $processo=true; //arquivo salvo } if(!$processo){ echo "Erro ao carregar arquivo!"; } else{ $file = $pathxml; //$file = "bcoweb_02.xml"; $sxml = new simplexml; $data = $sxml->xml_load_file($file); //print_r($data); include("../inc/conBD.php"); $i=0; if(is_array($data->usuario)){ foreach($data->usuario as $elemento){ $pro = 0; //arquivos processados $dia = substr($elemento->nascimento,0,2); $mes = substr($elemento->nascimento,2,2); $ano = substr($elemento->nascimento,4,4); $id = $elemento->id; if($elemento->movimento=="A"){ $strSQL = "UPDATE tbusuario SET "; $strSQL .= " usuario = '" . $elemento->matricula . "', "; $strSQL .= " internoSaber = '" . $elemento->interno . "', "; $strSQL .= " nome = '" . addslashes($elemento->nome) . "', "; $strSQL .= " matricula = '" . $elemento->matricula . "', "; $strSQL .= " orgao_trab = '" . addslashes($elemento->orgao) . "', "; $strSQL .= " cpf = '" . $elemento->cpf . "', "; $strSQL .= " email = '" . addslashes($elemento->email) . "', "; $strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " fone = '" . addslashes($elemento->fone) . "', "; $strSQL .= " fax = '" . addslashes($elemento->celular) . "', "; $strSQL .= " endereco = '" . addslashes($elemento->endereco_residencial->endereco) . "', "; $strSQL .= " bairro = '" . addslashes($elemento->endereco_residencial->bairro) . "', "; if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){ $strSQL .= " codCidade = " . $elemento->endereco_residencial->codcid . ", "; } $strSQL .= " uf = '" . addslashes($elemento->endereco_residencial->uf) . "', "; $strSQL .= " cep = '" . addslashes($elemento->endereco_residencial->cep) . "', "; $strSQL .= " endereco_p = '" . addslashes($elemento->endereco_correspondencia->endereco) . "', "; $strSQL .= " bairro_p = '" . addslashes($elemento->endereco_correspondencia->bairro) . "', "; if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " codCidade_p = " . $elemento->endereco_correspondencia->codcid . ", "; } $strSQL .= " uf_p = '" . addslashes($elemento->endereco_correspondencia->uf) . "', "; $strSQL .= " cep_p = '" . addslashes($elemento->endereco_correspondencia->cep) . "', "; $strSQL .= " ativo = 1 , "; $strSQL .= " convenio = '" . $elemento->convenio . "' "; $strSQL .= " WHERE id = " . $id; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado alterado: </b>" . $elemento->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } elseif($elemento->movimento=="I"){ if( ($id!="") && (!is_array($id)) && ($id!="Array") ){ //se é do tipo MASSA e tem id, então update $strSQL = "UPDATE tbusuario SET "; $strSQL .= " usuario = '" . $elemento->matricula . "', "; $strSQL .= " internoSaber = '" . $elemento->interno . "', "; $strSQL .= " nome = '" . addslashes($elemento->nome) . "', "; $strSQL .= " matricula = '" . $elemento->matricula . "', "; $strSQL .= " orgao_trab = '" . addslashes($elemento->orgao) . "', "; $strSQL .= " cpf = '" . $elemento->cpf . "', "; $strSQL .= " email = '" . addslashes($elemento->email) . "', "; $strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " fone = '" . addslashes($elemento->fone) . "', "; $strSQL .= " fax = '" . addslashes($elemento->celular) . "', "; $strSQL .= " endereco = '" . addslashes($elemento->endereco_residencial->endereco) . "', "; $strSQL .= " bairro = '" . addslashes($elemento->endereco_residencial->bairro) . "', "; if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){ $strSQL .= " codCidade = " . $elemento->endereco_residencial->codcid . ", "; } $strSQL .= " uf = '" . addslashes($elemento->endereco_residencial->uf) . "', "; $strSQL .= " cep = '" . addslashes($elemento->endereco_residencial->cep) . "', "; $strSQL .= " endereco_p = '" . addslashes($elemento->endereco_correspondencia->endereco) . "', "; $strSQL .= " bairro_p = '" . addslashes($elemento->endereco_correspondencia->bairro) . "', "; if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " codCidade_p = " . $elemento->endereco_correspondencia->codcid . ", "; } $strSQL .= " uf_p = '" . addslashes($elemento->endereco_correspondencia->uf) . "', "; $strSQL .= " cep_p = '" . addslashes($elemento->endereco_correspondencia->cep) . "', "; $strSQL .= " ativo = 1 , "; $strSQL .= " convenio = '" . $elemento->convenio . "' "; $strSQL .= " WHERE id = " . $id; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado alterado: </b>" . $elemento->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } else { //se é massa e não tem id, então insert $strSQL = "INSERT INTO tbusuario( "; $strSQL .= " usuario, internoSaber, senha, nome, matricula, orgao_trab, cpf, email, datanascimento, tipo, fone, fax, "; $strSQL .= " endereco, bairro, "; if ($elemento->endereco_residencial->codcid!=""){ $strSQL .= " codCidade, "; } $strSQL .= " uf, cep, "; $strSQL .= " endereco_p, bairro_p, "; if ($elemento->endereco_correspondencia->codcid!=""){ $strSQL .= " codCidade_p, "; } $strSQL .= " uf_p, cep_p, "; $strSQL .= " ativo, convenio, c_usuario, c_data, alterado_web "; $strSQL .= ") VALUES ( "; $strSQL .= " '" . $elemento->matricula . "', "; $strSQL .= " '" . $elemento->interno . "', "; $strSQL .= " '" . md5("12345") . "', "; $strSQL .= " '" . addslashes($elemento->nome) . "', "; $strSQL .= " '" . $elemento->matricula . "', "; $strSQL .= " '" . addslashes($elemento->orgao) . "', "; $strSQL .= " '" . $elemento->cpf . "', "; $strSQL .= " '" . addslashes($elemento->email) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " 'P', "; $strSQL .= " '" . addslashes($elemento->fone) . "', '" . addslashes($elemento->celular) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_residencial->endereco) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_residencial->bairro) . "', "; if (($elemento->endereco_residencial->codcid!="") && (!is_array($elemento->endereco_residencial->codcid)) && ($elemento->endereco_residencial->codcid!="Array") ){ $strSQL .= " " . addslashes($elemento->endereco_residencial->codcid) . ", "; } $strSQL .= " '" . addslashes($elemento->endereco_residencial->uf) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_residencial->cep) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_correspondencia->endereco) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_correspondencia->bairro) . "', "; if (($elemento->endereco_correspondencia->codcid!="") && (!is_array($elemento->endereco_correspondencia->codcid)) && ($elemento->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " " . addslashes($elemento->endereco_correspondencia->codcid) . ", "; } $strSQL .= " '" . addslashes($elemento->endereco_correspondencia->uf) . "', "; $strSQL .= " '" . addslashes($elemento->endereco_correspondencia->cep) . "', "; $strSQL .= " 1, "; $strSQL .= " '" . $elemento->convenio . "', "; $strSQL .= " 'importacao', "; $strSQL .= " STR_TO_DATE('" . date('Y-m-d') . "', '%Y-%m-%d'), "; $strSQL .= " true) "; if (!Usuario_Existe($elemento->interno,1)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); $id = mysql_insert_id(); echo "<br /><hr /><b>Associado incluído: </b>" . $elemento->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>Associado já existente!</font></b> (Código interno = ".$elemento->interno.") ".$elemento->nome; } } } elseif($elemento->movimento=="E"){ $strSQL = "UPDATE tbusuario SET ativo = 0 "; $strSQL .= "WHERE id = $id "; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado desativado: </b>" . $elemento->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } //incrementando processados e erros if ($pro == 1){ $exe++; } else { $err++; } // ATUALIZAÇÃO DOS DEPENDENTES // //só entra se NÃO for do tipo $elemento->movimento=="E" // if($elemento->movimento!="E" && $pro == 1){ //DELETA TODOS OS DEPENDENTES E INSERE NOVAMENTE PARA NÃO PRECISAR VERFICAR QUAIS PRECISAM SER ATUALIZADOS $strSQL = "DELETE FROM tbusuario_dep WHERE tbusuario_id = $id "; @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); if(is_array($elemento->dependente)){ foreach($elemento->dependente as $dep){ $dia = substr($dep->nascimento,0,2); $mes = substr($dep->nascimento,2,2); $ano = substr($dep->nascimento,4,4); $strSQL = "INSERT INTO tbusuario_dep( "; $strSQL .= " tbusuario_id, nome, grau, datanascimento "; $strSQL .= ") VALUES ( "; $strSQL .= " " . $id . ", "; $strSQL .= " '" . addslashes($dep->nome) . "', "; $strSQL .= " '" . addslashes($dep->grau) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') "; $strSQL .= ") "; @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><b>Dependente inserido: </b>" . $dep->nome; } } else { //SE NÃO FOR ARRAY VAI POR AQUI if($elemento->dependente->nome != ""){ $dia = substr($elemento->dependente->nascimento,0,2); $mes = substr($elemento->dependente->nascimento,2,2); $ano = substr($elemento->dependente->nascimento,4,4); $strSQL = "INSERT INTO tbusuario_dep( "; $strSQL .= " tbusuario_id, nome, grau, datanascimento "; $strSQL .= ") VALUES ( "; $strSQL .= " " . $id . ", "; $strSQL .= " '" . addslashes($elemento->dependente->nome) . "', "; $strSQL .= " '" . addslashes($elemento->dependente->grau) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') "; $strSQL .= ") "; @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><b>Dependente inserido: </b>" . $elemento->dependente->nome; } } //SAINDO DO IF DE VERIFICAÇÃO SE É ARRAY }//fim das inclusões de dependentes em caso de não exclusão de associado $i++; } //SAI DO FOREACH QUE VARRE OS USUÁRIOS //////############################################################# } else { //SE TIVER APENAS UM USUÁRIO TEM QUE CRIAR A SOLUÇÃO AQUI $pro = 0; $dia = substr($data->usuario->nascimento,0,2); $mes = substr($data->usuario->nascimento,2,2); $ano = substr($data->usuario->nascimento,4,4); $id = $data->usuario->id; if($data->usuario->movimento=="A"){ $strSQL = "UPDATE tbusuario SET "; $strSQL .= " usuario = '" . $data->usuario->matricula . "', "; $strSQL .= " internoSaber = '" . $data->usuario->interno . "', "; $strSQL .= " nome = '" . addslashes($data->usuario->nome) . "', "; $strSQL .= " matricula = '" . $data->usuario->matricula . "', "; $strSQL .= " orgao_trab = '" . addslashes($data->usuario->orgao) . "', "; $strSQL .= " cpf = '" . $data->usuario->cpf . "', "; $strSQL .= " email = '" . addslashes($data->usuario->email) . "', "; $strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " fone = '" . addslashes($data->usuario->fone) . "', "; $strSQL .= " fax = '" . addslashes($data->usuario->celular) . "', "; $strSQL .= " endereco = '" . addslashes($data->usuario->endereco_residencial->endereco) . "', "; $strSQL .= " bairro = '" . addslashes($data->usuario->endereco_residencial->bairro) . "', "; if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){ $strSQL .= " codCidade = " . $data->usuario->endereco_residencial->codcid . ", "; } $strSQL .= " uf = '" . addslashes($data->usuario->endereco_residencial->uf) . "', "; $strSQL .= " cep = '" . addslashes($data->usuario->endereco_residencial->cep) . "', "; $strSQL .= " endereco_p = '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', "; $strSQL .= " bairro_p = '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', "; if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " codCidade_p = " . $data->usuario->endereco_correspondencia->codcid . ", "; } $strSQL .= " uf_p = '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', "; $strSQL .= " cep_p = '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', "; $strSQL .= " ativo = 1 , "; $strSQL .= " convenio = '" . $data->usuario->convenio . "' "; $strSQL .= " WHERE id = " . $id; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado alterado: </b>" . $data->usuario->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } elseif($data->usuario->movimento=="I"){ // if($data->tipoenvio=="MASSA"){ if( ($id!="") && (!is_array($id)) && ($id!="Array") ){ //se é do tipo MASSA e tem id, então update $strSQL = "UPDATE tbusuario SET "; $strSQL .= " usuario = '" . $data->usuario->matricula . "', "; $strSQL .= " internoSaber = '" . $data->usuario->interno . "', "; $strSQL .= " nome = '" . addslashes($data->usuario->nome) . "', "; $strSQL .= " matricula = '" . $data->usuario->matricula . "', "; $strSQL .= " orgao_trab = '" . addslashes($data->usuario->orgao) . "', "; $strSQL .= " cpf = '" . $data->usuario->cpf . "', "; $strSQL .= " email = '" . addslashes($data->usuario->email) . "', "; $strSQL .= " datanascimento = STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " fone = '" . addslashes($data->usuario->fone) . "', "; $strSQL .= " fax = '" . addslashes($data->usuario->celular) . "', "; $strSQL .= " endereco = '" . addslashes($data->usuario->endereco_residencial->endereco) . "', "; $strSQL .= " bairro = '" . addslashes($data->usuario->endereco_residencial->bairro) . "', "; if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){ $strSQL .= " codCidade = " . $data->usuario->endereco_residencial->codcid . ", "; } $strSQL .= " uf = '" . addslashes($data->usuario->endereco_residencial->uf) . "', "; $strSQL .= " cep = '" . addslashes($data->usuario->endereco_residencial->cep) . "', "; $strSQL .= " endereco_p = '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', "; $strSQL .= " bairro_p = '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', "; if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " codCidade_p = " . $data->usuario->endereco_correspondencia->codcid . ", "; } $strSQL .= " uf_p = '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', "; $strSQL .= " cep_p = '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', "; $strSQL .= " ativo = 1 , "; $strSQL .= " convenio = '" . $data->usuario->convenio . "' "; $strSQL .= " WHERE id = " . $id; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado alterado: </b>" . $data->usuario->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } else { //se é massa e não tem id, então insert $strSQL = "INSERT INTO tbusuario( "; $strSQL .= " usuario, internoSaber, senha, nome, matricula, orgao_trab, cpf, email, datanascimento, tipo, fone, fax, "; $strSQL .= " endereco, bairro, "; if ($data->usuario->endereco_residencial->codcid!=""){ $strSQL .= " codCidade, "; } $strSQL .= " uf, cep, "; $strSQL .= " endereco_p, bairro_p, "; if ($data->usuario->endereco_correspondencia->codcid!=""){ $strSQL .= " codCidade_p, "; } $strSQL .= " uf_p, cep_p, "; $strSQL .= " ativo, convenio, c_usuario, c_data, alterado_web "; $strSQL .= ") VALUES ( "; $strSQL .= " '" . $data->usuario->matricula . "', "; $strSQL .= " '" . $data->usuario->interno . "', "; $strSQL .= " '" . md5("12345") . "', "; $strSQL .= " '" . addslashes($data->usuario->nome) . "', "; $strSQL .= " '" . $data->usuario->matricula . "', "; $strSQL .= " '" . addslashes($data->usuario->orgao) . "', "; $strSQL .= " '" . $data->usuario->cpf . "', "; $strSQL .= " '" . addslashes($data->usuario->email) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d'), "; $strSQL .= " 'P', "; $strSQL .= " '" . addslashes($data->usuario->fone) . "', '" . addslashes($data->usuario->celular) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_residencial->endereco) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_residencial->bairro) . "', "; if (($data->usuario->endereco_residencial->codcid!="") && (!is_array($data->usuario->endereco_residencial->codcid)) && ($data->usuario->endereco_residencial->codcid!="Array") ){ $strSQL .= " " . addslashes($data->usuario->endereco_residencial->codcid) . ", "; } $strSQL .= " '" . addslashes($data->usuario->endereco_residencial->uf) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_residencial->cep) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->endereco) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->bairro) . "', "; if (($data->usuario->endereco_correspondencia->codcid!="") && (!is_array($data->usuario->endereco_correspondencia->codcid)) && ($data->usuario->endereco_correspondencia->codcid!="Array") ){ $strSQL .= " " . addslashes($data->usuario->endereco_correspondencia->codcid) . ", "; } $strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->uf) . "', "; $strSQL .= " '" . addslashes($data->usuario->endereco_correspondencia->cep) . "', "; $strSQL .= " 1, "; $strSQL .= " '" . $data->usuario->convenio . "', "; $strSQL .= " 'importacao', "; $strSQL .= " STR_TO_DATE('" . date('Y-m-d') . "', '%Y-%m-%d'), "; $strSQL .= " true) "; // echo $strSQL . "<br><br><br><br>"; if (!Usuario_Existe($elemento->interno,1)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); $id = mysql_insert_id(); echo "<br /><hr /><b>Associado incluído: </b>" . $data->usuario->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>Associado já existente!</font></b> (Código interno = ".$elemento->interno.") ".$elemento->nome; } } } elseif($data->usuario->movimento=="E"){ $strSQL = "UPDATE tbusuario SET ativo = 0 "; $strSQL .= "WHERE id = $id "; if (Usuario_Existe($id)){ @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><hr /><b>Associado desativado: </b>" . $data->usuario->nome; $pro=1; } else { echo "<br /><hr /><b><font color='red'>ID do associado não encontrado! </font></b>(ID = ".$id.") ".$elemento->nome; } } //incrementando processados e erros if ($pro == 1){ $exe++; } else { $err++; } /*--------------------------------------------------- DEPENDENTES ---------------------------------------------------*/ //só entra se NÃO for do tipo $data->usuario->movimento=="E" if($data->usuario->movimento!="E" && $pro ==1){ //DELETA TODOS OS DEPENDENTES E INSERE NOVAMENTE PARA NÃO PRECISAR VERFICAR QUAIS PRECISAM SER ATUALIZADOS $strSQL = "DELETE FROM tbusuario_dep WHERE tbusuario_id = $id "; @mysql_query($strSQL) or die("Erro ao executar:<br><b>$strSQL</b><br>" . mysql_error()); if(is_array($data->usuario->dependente)){ foreach($data->usuario->dependente as $dep){ $dia = substr($dep->nascimento,0,2); $mes = substr($dep->nascimento,2,2); $ano = substr($dep->nascimento,4,4); $strSQL = "INSERT INTO tbusuario_dep( "; $strSQL .= " tbusuario_id, nome, grau, datanascimento "; $strSQL .= ") VALUES ( "; $strSQL .= " " . $id . ", "; $strSQL .= " '" . addslashes($dep->nome) . "', "; $strSQL .= " '" . addslashes($dep->grau) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') "; $strSQL .= ") "; @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><b>Dependente inserido: </b>" . $dep->nome; } } else { //SE NÃO FOR ARRAY VAI POR AQUI if($data->usuario->dependente->nome != ""){ $dia = substr($data->usuario->dependente->nascimento,0,2); $mes = substr($data->usuario->dependente->nascimento,2,2); $ano = substr($data->usuario->dependente->nascimento,4,4); $strSQL = "INSERT INTO tbusuario_dep( "; $strSQL .= " tbusuario_id, nome, grau, datanascimento "; $strSQL .= ") VALUES ( "; $strSQL .= " " . $id . ", "; $strSQL .= " '" . addslashes($data->usuario->dependente->nome) . "', "; $strSQL .= " '" . addslashes($data->usuario->dependente->grau) . "', "; $strSQL .= " STR_TO_DATE('$ano-$mes-$dia', '%Y-%m-%d') "; $strSQL .= ") "; @mysql_query($strSQL) or die("Erro ao executar:<br /><b>$strSQL</b><br />" . mysql_error()); echo "<br /><b>Dependente inserido: </b>" . $data->usuario->dependente->nome; } } //SAINDO DO IF DE VERIFICAÇÃO SE É ARRAY }//fim das inclusões de dependentes em caso de não exclusão de associado $i++; } echo "<hr />"; echo "<br /><br /> <br /><br /> <table>"; if ($data -> id){ echo " <tr> <td width='250px'><b>Identificador de Envio</b></td><td>".$data -> id."</td> </tr> <tr> <td width='250px' colspan='2'> </td> </tr>"; } echo " <tr> <td width='250px'><b>Arquivo</b></td><td>".$_FILES["cpfile"]["name"]."</td> </tr> <tr> <td width='250px' colspan='2'> </td> </tr> <tr> <td width='250px'><b>Total de registros lidos</b></td><td>$i</td> </tr> <tr> <td width='250px'><b>Total de registros processados</b></td><td>$exe</td> </tr> <tr> <td width='250px'><b>Total de registros com erro</b></td><td>$err</td> </tr> </table> <br /><br /> <b>Importação do arquivo concluída!"; if ($err){ echo "<br /><br /><b><font color='red'>VERIFIQUE OS REGISTROS IGNORADOS POR ERRO PARA O PROCEDIMENTO ADEQUADO!</font></b>"; } } //FIM DO IF DE VERIFICAÇÃO SE O ARQUIVO FOI CARREGADO /*----------------------------------- Verifica se usuario já existe ----------------------------------- $chave = Item a ser pesquisado $tipo = NULL -> Por ID $tipo = 1 -> Por Codigo Saber $tipo = 2 -> Por Matricula $tipo = 3 -> Por CPF $tipo = 4 -> Por Usuario -----------------------------------*/ function Usuario_Existe($chave, $tipo = NULL){ $sql = "SELECT `id`, `internoSaber` FROM `tbusuario` WHERE "; switch ($tipo) { case 1: $sql .= "`internoSaber` = '$chave' LIMIT 0,1"; break; case 2: $sql .= "`matricula` = '$chave' LIMIT 0,1"; break; case 3: $sql .= "`cpf` = '$chave' LIMIT 0,1"; break; case 4: $sql .= "`usuario` = '$chave' LIMIT 0,1"; break; default: $sql .= "`id` = '$chave' LIMIT 0,1"; } $res = @mysql_query($sql); if (@mysql_num_rows($res)>0){ return true; //existe } else { return false; //não existe ainda } } @mysql_free_result($RS); @mysql_free_result($res); @mysql_close($conexao); ?>Vlw
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.