Marcio_123 1 Denunciar post Postado Março 19, 2018 ola pessoal estou usando esse arquivo para importar uma tabela feita em excel e salva como arquivo .csv Esta tudo certo ele importa sem problemas o que ocorre é que tem uma linha de cabecalho, e precisa pular, alguem poderia me dar um help para pular essa 1° linha, absss if ($_FILES[csv][size] > 0) { //pega o arquivo csv $file = $_FILES[csv][tmp_name]; $handle = fopen($file,"r"); //insere no banco de dados do { if ($data[0]) { mysql_query("INSERT INTO tb_folha_pagamento (mes, nome, cargo, secretaria, vinculo, proventos, fixo, liquido) VALUES ( '$mes', '".addslashes($data[3])."', '".addslashes($data[4])."', '".addslashes($data[10])."', '".addslashes($data[15])."', '".addslashes($data[11])."', '".addslashes($data[12])."', '".addslashes($data[13])."' ) "); } } while ($data = fgetcsv($handle,1000,";","'")); Compartilhar este post Link para o post Compartilhar em outros sites
HwapX 20 Denunciar post Postado Março 20, 2018 Para descartar o cabeçalho basta ler a primeira linha antes do loop e descartá-la(veja o primeiro comentaŕio do exemplo abaixo), também tomei a liberdade de realizar outros ajustes que considerei relevantes porem eles não tem relação com sua pergunta. //... //Lê a primeira com o cabeçalho e a descarta, essa é a única linha necessária para resolver seu problema. fgetcsv($handle,1000,";","'"); //Alterei o **do while** para while pois não existia linha para ser processada antes da primeira interação while ($data = fgetcsv($handle,1000,";","'")) { //Alterei seu if para uma condição mais especifica. //Caso a linha esteja em branco pula para a proxima linha. //REF: http://php.net/fgetcsv#refsect1-function.fgetcsv-returnvalues //A blank line in a CSV file will be returned as an array comprising a single null field, and will not be treated as an error. if(count($data) === 1 && $data[0] === null) continue; mysql_query("INSERT INTO tb_folha_pagamento (mes, nome, cargo, secretaria, vinculo, proventos, fixo, liquido) VALUES ( '$mes', //Alterei o uso da função addslashes para a mysql_real_escape_string pois embora ela "resolva" o problema, //ela não foi feita exatamente para este proposito podendo escapar caracteres a mais ou menos do que o necessário //e como já temos uma função para isso na própria biblioteca porque não utiliza-la? '".mysql_real_escape_string($data[3])."', '".mysql_real_escape_string($data[4])."', '".mysql_real_escape_string($data[10])."', '".mysql_real_escape_string($data[15])."', '".mysql_real_escape_string($data[11])."', '".mysql_real_escape_string($data[12])."', '".mysql_real_escape_string($data[13])."' ) "); } Compartilhar este post Link para o post Compartilhar em outros sites