Size: a a a

2020 May 14

S

SupportBtc in Laravel Pro
а есть пример как это сделать так, чтобы не было верхний полей, и я могу на основе данных делать запросы и делать свои вставку в базу
источник

АЗ

Алихан Закиров... in Laravel Pro
SupportBtc
а есть пример как это сделать так, чтобы не было верхний полей, и я могу на основе данных делать запросы и делать свои вставку в базу
Чтобы небыло верхних полей - просто проигнорируй первую строчку прям в коде :))
источник

DF

Dmitriy Fedosov in Laravel Pro
SupportBtc
а есть пример как это сделать так, чтобы не было верхний полей, и я могу на основе данных делать запросы и делать свои вставку в базу
$row = 1;
       if (($handle = fopen($file, "r")) !== false) {
           while (($data = fgetcsv($handle, 0, "\t")) !== false) {
               $row++;
           }
      }
fclose($handle);
источник

DF

Dmitriy Fedosov in Laravel Pro
Делиметр свой установи
источник

S

SupportBtc in Laravel Pro
$file = fopen($request->file->getRealPath(), "r");

while ($data = fgetcsv($file)) {
   print_r($data);
}
тут я читаю файл
источник

DF

Dmitriy Fedosov in Laravel Pro
Если файл большой читать лучше по одной строке
источник

DF

Dmitriy Fedosov in Laravel Pro
Чтобы не грузить в память всё сразу
источник

S

SupportBtc in Laravel Pro
а как внутри я могу делать запросы, например, там будет поле attribute у него несколько значений через запятую

и мне нужно будет из базы посмотреть эти зачение из файла и в базу записать idёшники
источник

АЗ

Алихан Закиров... in Laravel Pro
Так
источник

v

vladimir in Laravel Pro
SupportBtc
а есть пример как это сделать так, чтобы не было верхний полей, и я могу на основе данных делать запросы и делать свои вставку в базу
Импорт пачками по 200 строк в базу.

$chunk = 200;
$items = [];
$file = new SplFileObject(“file.csv”);
$file->setFlags(SplFileObject::READ_CSV);
$file->fseek(1);
$i = 0;
foreach ($file as $row) {
   ++$i;
   [$column1, $column2, $column3] = $row;
   $items[] = [ ‘id’ => $column1, ‘name’ => $column2, ‘description’ => $column3];

   if($i == 200) {
        Model::insert($items);

        $i = 0;
        $items = [];
   }
}
источник

АЗ

Алихан Закиров... in Laravel Pro
Давай так.
Это какая-то разовая операция?
источник

S

SupportBtc in Laravel Pro
ну обычно да, она часто использоваться не будет
источник

S

SupportBtc in Laravel Pro
там большой файл будет с 2к товарами
источник

АЗ

Алихан Закиров... in Laravel Pro
2к это не большой
источник

S

SupportBtc in Laravel Pro
они загрузят его
источник

АЗ

Алихан Закиров... in Laravel Pro
какие-то проблемы с тем, что у тебя много запросов сейчас уже возникают?
источник

v

vladimir in Laravel Pro
Это маленький )) вот ФИАС дома с 20 миллионами) это большой ))
источник

S

SupportBtc in Laravel Pro
Алихан Закиров
какие-то проблемы с тем, что у тебя много запросов сейчас уже возникают?
нет, я просто делал импорт на либе laravel exel, на ней на сервере на работает.

у меня только один вопрос, как внутри цикла с файлом проверять например,

поле sku если у него значнеие такое, тогда мы делаем такой запрос...и так с каждой строчкой и полем
источник

АЗ

Алихан Закиров... in Laravel Pro
ну и делай
источник

АЗ

Алихан Закиров... in Laravel Pro
прямо в цикле

foreach ($rows as $row) {
   $model = Model::find($row[‘key’);
   …
   AnotherModel::create($row);
}
источник