Autor Tópico: importação [RESOLVIDO]  (Lida 599 vezes)

Alexandre Copetti

  • Novato
  • *
  • Mensagens: 22
    • Email
importação [RESOLVIDO]
« Online: Novembro 13, 2014, 04:15:36 pm »
boa tarde

estou tentando fazer a importação de um arquivo .csv com o seguinte código:

_________________________________________________________________________________
$inseridos = 0;
 $row = 1;
 $arq = $_SESSION['scriptcase']['control_importa_categorias']['glo_nm_path_doc']."/".{arquivo};
 $handle = fopen ($arq,"r");
 while ($data = fgetcsv ($handle, 1000, ";")) {
   $num = count ($data);
   
   $row++;
   for ($c=0; $c < $num; $c++) {
      switch ($c) {
         case 0:
           $datahora = $data[$c];
           break;
         case 1:
           $sequencia = $data[$c];
           break;
         case 2:
           $nota1 = $data[$c];
           break;
         case 3:
           $nota2 = $data[$c];
           break;
         case 4:
           $nota3 = $data[$c];
           break;
       case 5:
           $nota4 = $data[$c];
           break;
       case 6:
           $nota5 = $data[$c];
           break;
       case 7:
           $nota6 = $data[$c];
           break;
       case 8:
           $local = $data[$c];
           break;
       case 9:
           $peso = $data[$c];
           break;
       case 10:
           $descricao = $data[$c];
           break;
      }
   }
   $sql = "INSERT INTO ast.importa_gardian (datahora, sequencia, nota1, nota2, nota3, nota4, nota5, nota6, local, peso, descricao, imp) VALUES
           ('$datahora','$sequencia','$nota1','$nota2','$nota3','$nota4','$nota5','$nota6','$local','$peso','$descricao', 'nao')";
   if ($datahora != "DtHrPesoInicial") {
      sc_exec_sql($sql);
      $inseridos++;
   }           
 }
 fclose ($handle);
 unlink($arq); 
 sc_alert("Foram Inseridos ".$inseridos." registros na tabela de Categorias !");
_____________________________________________________________________________________________________

mais estou com um problema, o meu primeiro campo 'datahora' esta indo para o banco com ex(2014-20-11 07:00)
com o dia no lugar do mês e isso da errado na conversão para os dias maiores que 12

já tentei as macros sc_data e sc_data_conv, nao sei se é pelo campo ser data e hora, mais não esta funcionando
« Última modificação: Novembro 14, 2014, 10:34:19 am por Alexandre Copetti »

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:importação
« Responder #1 Online: Novembro 14, 2014, 07:22:21 am »
Faça o seguinte:

case 0:
           $datahora = sc_date_conv($data[$c], "aaaa-dd-mm hh:mm", "aaaa-mm-dd hh:mm");
           break;

Alexandre Copetti

  • Novato
  • *
  • Mensagens: 22
    • Email
Re:importação
« Responder #2 Online: Novembro 14, 2014, 10:09:16 am »
já tentei isso também
e retorna isso "2014-MM-11 HH:MM"
« Última modificação: Novembro 14, 2014, 10:11:13 am por Alexandre Copetti »

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:importação
« Responder #3 Online: Novembro 14, 2014, 10:20:06 am »
Dessa maneira deveria ir, testa com caracteres minúsculos.
Caso ainda não dê resolve com substr concatenando as posições corretas.

Alexandre Copetti

  • Novato
  • *
  • Mensagens: 22
    • Email
Re:importação
« Responder #4 Online: Novembro 14, 2014, 10:33:53 am »
eu escrevi em minusculo, ali eu só copiei parte do erro que o scriptcase retorno
eu vou fazer o seguinte, o arquivo .csv que esta vindo com o formato errado
vou conversar com o programador e questionar o porque o formato dele é esse e se não teria como arrumar ele mesmo ao gerar o arquivo

obrigado