Обновить таблицу product_carrier с помощью файла CSV - PullRequest
0 голосов
/ 02 июля 2018

Я реализую скрипт для обновления таблицы prestashop -> product_carrier с помощью CSV. У моего CSV есть 2 столбца.

Столбец «ссылка» и столбец «истина / ложь». Когда я просматриваю CSV и ссылка равна 0, я вставляю в таблицу 3 строки, которые касаются ссылок на носителей. Моя проблема в том, что когда я просматриваю CSV, var_dump показывает мне NULL, и я не понимаю, почему. Вот мой код:

<code>    <?php

require(dirname(__FILE__) . '/config/config.inc.php');

$dir_fichier = $_SERVER['DOCUMENT_ROOT'].'/IMPORTS/STOCK_EXPRESS_FR'.'.csv';

tntProduct($dir_fichier);

function tntProduct($dir_fichier)
{
    $csv = new SplFileObject($dir_fichier);
    $csv->setFlags(SplFileObject::READ_CSV);
    $csv->setCsvControl(';');

    $carriersFR = [
        0 => 1,
        1 => 72,
        2 => 87
    ];

    foreach($csv as $ligne){
        echo '<pre>';
        if ($ligne[1] == 0) {
            getProductsIds($ligne[0], $carriersFR);
        }
        echo '
'; } } функция getProductsIds ($ ссылка, $ носители) { $ sql = Db :: getInstance () -> executeS (' SELECT p.id_product FROM '._DB_PREFIX _.' Продукт p ГДЕ p.reference = '.' "'. $ Reference.'" '); foreach ($ sql как $ key => $ item) { $ productsIds [$ key] ['id_product'] = (int) $ item ['id_product']; $ productsIds [$ key] ['id_carrier_reference'] = $ carrier; $ productsIds [$ key] ['id_shop'] = 1; } foreach ($ productsIds as $ productsId) { $ product [] = $ productsId; } var_dump ($ продукта); вернуть $ productsIds; }

отображается

enter image description here

Пример CSV:

831S587 0
822 0
10601   13
61703111    0

Спасибо за помощь.

1 Ответ

0 голосов
/ 03 июля 2018

Спасибо за ответ, вот какой курорт

enter image description here

мне нужен этот формат для функции setCarriers ();

enter image description here

...