Boa tarde!
Jedi;
Preciso de um help mega blaster, hoje tenho uma importação funcionando redondo, exceto por um motivo, a empresa terceira mexe na ordenação
das colunas desse arquivo csv de importação, e sem avisar, acrescentam e retiram colunas... é um inferno na terra...
Meu código é bem simples, ele lê o arquivo csv com php e importa para uma tabela, o que gostaria de fazer e de forma mais inteligente era ele
entender o nome de cada coluna e importar e salvar na tabela as colunas corretas. Obs.: A única coisa que não muda nesse csv é o nome das colunas, mas elas podem vir e vem em ordens diferentes.
Segue meu script:
if(isset($_POST["submit"]))
{
if($_FILES['file']['name'])
{
$filename = explode(".", $_FILES['file']['name']);
if($filename[1] == 'csv')
{
/* $codigoUnidade = $_POST["codigoUnid"];
$connect = mysqli_connect("localhost", "
xxxxxxxxx", "
xxxxxxxxxxxxx", "
xxxxxxxxxxxxxxx");
mysqli_set_charset($connect, 'utf8');
$query ="SELECT empresa.CNAE AS cnae FROM unid_posto INNER JOIN empresa ON empresa.ID=unid_posto.ID_EMP WHERE unid_posto.ID='$codigoUnidade' LIMIT 1";
mysqli_set_charset($connect, 'utf8');
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_array($result))
{
$cnae = $row["cnae"];
}
*/
$handle = fopen($_FILES['file']['tmp_name'], "r");
while(($data = fgetcsv($handle, 1000, ";")) !== FALSE )
{
mysqli_set_charset($conn, 'utf8');
$DT_REG = date('Y-m-d H:i:s');
$STS = "1";
$ID_ROTA = mysqli_real_escape_string($conn, $data[0]);
$ROTEIRIZACAO = mysqli_real_escape_string($conn, $data[1]);
$ROTA = mysqli_real_escape_string($conn, $data[2]);
$STS_ROTA = mysqli_real_escape_string($conn, $data[3]);
$TIPO_CONCLU = mysqli_real_escape_string($conn, $data[4]);
$COD_CONCLU = mysqli_real_escape_string($conn, $data[5]);
$DESC_CONCLU = mysqli_real_escape_string($conn, $data[6]);
$DT_ROTA = mysqli_real_escape_string($conn, $data[7]);
$dtr = explode("/", $DT_ROTA);
@$d = $dtr[0];
@$m = $dtr[1];
@$Y = $dtr[2];
$DT_ROTA2 = ''.$Y.'-'.$m.'-'.$d.'';
$HR_ROTA = mysqli_real_escape_string($conn, $data[8]);
$ID_SERVICO = mysqli_real_escape_string($conn, $data[9]);
$SERVICO = mysqli_real_escape_string($conn, $data[10]);
$STS_SERVICO = mysqli_real_escape_string($conn, $data[11]);
$COD_CLIENTE = mysqli_real_escape_string($conn, $data[12]);
$NM_CLIENTE = mysqli_real_escape_string($conn, $data[13]);
$NF = mysqli_real_escape_string($conn, $data[14]);
$NP = mysqli_real_escape_string($conn, $data[15]);
$OBS = mysqli_real_escape_string($conn, $data[16]);
$REG = mysqli_real_escape_string($conn, $data[17]);
$DT_REGISTRO = mysqli_real_escape_string($conn, $data[18]);
$dtrr = explode("/", $DT_REGISTRO);
@$dr = $dtrr[0];
@$mr = $dtrr[1];
@$Yr = $dtrr[2];
$DT_REGISTRO2 = ''.$Yr.'-'.$mr.'-'.$dr.'';
$HR_REGISTRO = mysqli_real_escape_string($conn, $data[19]);
$COD_OCORR = mysqli_real_escape_string($conn, $data[20]);
$TIPO_OCORR = mysqli_real_escape_string($conn, $data[21]);
$DESC_OCORR = mysqli_real_escape_string($conn, $data[22]);
$COMENT_OPER = mysqli_real_escape_string($conn, $data[23]);
$ASSINATURAS = mysqli_real_escape_string($conn, $data[24]);
$FOTOS = mysqli_real_escape_string($conn, $data[25]);
$DOC_IDENT_CLI = mysqli_real_escape_string($conn, $data[26]);
if (($COD_OCORR=="100") OR
($COD_OCORR=="999") OR
($COD_OCORR=="101") OR
($COD_OCORR=="996") OR
($COD_OCORR=="997") OR
($COD_OCORR=="998") OR
($COD_OCORR=="016") OR
($COD_OCORR=="112") OR
($COD_OCORR=="113") OR
($COD_OCORR=="114") OR
($COD_OCORR=="115") OR
($COD_OCORR=="116") OR
($COD_OCORR=="117") OR
($COD_OCORR=="118") OR
($COD_OCORR=="119") OR
($COD_OCORR=="120") OR
($COD_OCORR=="122"))
{
mysqli_set_charset($conn, 'utf8');
$insert = mysqli_query($conn,"INSERT INTO validacao_excel (DT_REG,STS,LOTE_BAIXA,ID_ROTA,ROTEIRIZACAO,ROTA,STS_ROTA,TIPO_CONCLU,COD_CONCLU,DESC_CONCLU,DT_ROTA,HR_ROTA,ID_SERVICO,SERVICO,STS_SERVICO,
COD_CLIENTE,NM_CLIENTE,NF,NP,OBS,REG,DT_REGISTRO,HR_REGISTRO,COD_OCORR,TIPO_OCORR,DESC_OCORR,COMENT_OPER,ASSINATURAS,FOTOS,DOC_IDENT_CLI) VALUES
('$DT_REG', '$STS', '$LOTE_BAIXA', '$ID_ROTA', '$ROTEIRIZACAO', '$ROTA', '$STS_ROTA', '$TIPO_CONCLU', '$COD_CONCLU', '$DESC_CONCLU', '$DT_ROTA2', '$HR_ROTA',
'$ID_SERVICO', '$SERVICO', '$STS_SERVICO', '$COD_CLIENTE', '$NM_CLIENTE', '$NF', '$NP', '$OBS', '$REG', '$DT_REGISTRO2', '$HR_REGISTRO', '$COD_OCORR', '$TIPO_OCORR', '$DESC_OCORR', '$COMENT_OPER',
'$ASSINATURAS', '$FOTOS', '$DOC_IDENT_CLI')") or die (mysqli_error($conn));
}
// echo '<pre>';
// print_r($data);
// echo '</pre>';
}
fclose($handle);
Diego Teles
Cel.: (21) 990891001