Я собрал скрипт, который выгрузит CSV-файл, а затем извлечет данные в уже созданную таблицу. Я хочу сделать так, чтобы первая строка (заголовки столбцов) не была вставлена в таблицу, но остальная часть данных будет.
$fp = fopen($_SESSION['filename'],"r"); while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { $import="INSERT into csv_table(name,address,age) values('$data[0]','$data[1]','$data[2]')"; mysql_query($import) or die(mysql_error()); } fclose($fp);
это часть кода, который я использую для извлечения данных из файла csv.
Большое спасибо за любую помощь в этом вопросе!
Просто поставьте следующее перед циклом while, чтобы прочитать первую строку:
fgetcsv($fp, 1000, ",");
После этого цикл while начинается со второй строки.
Подумайте об этом.
Создайте булевский флаг снаружи и переключите его, как только вы введете цикл, а не импортируете, используя оператор if.
Просто сделайте пустое чтение как таковое:
$fp = fopen($_SESSION['filename'],"r"); $headerLine = true; while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) { if($headerLine) { $headerLine = false; } else { $import="INSERT into csv_table(name,address,age) values('$data[0]','$data[1]','$data[2]')"; mysql_query($import) or die(mysql_error()); } } fclose($fp);