首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CSV文件更新product_carrier表

使用CSV文件更新product_carrier表
EN

Stack Overflow用户
提问于 2018-07-03 04:02:54
回答 1查看 53关注 0票数 0

我实现了一个脚本来使用CSV更新一个表的prestashop -> product_carrier。我的CSV有2列。

一个"reference“列和一个"true / false”列。当我浏览CSV并且引用等于0时,我在表中插入了3行关于载体引用的内容。我的问题是,当我浏览CSV时,var_dump会显示NULL,而我不明白为什么。下面是我的代码:

代码语言:javascript
复制
    <?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 '</pre>';
    }
}

function getProductsIds($reference, $carriers)
{
    $sql = Db::getInstance()->executeS('
            SELECT p.id_product 
            FROM '._DB_PREFIX_.'product p
            WHERE p.reference = '.'"'.$reference.'"');

        foreach ($sql as $key => $item) {
                $productsIds[$key]['id_product'] = (int)$item['id_product'];
                $productsIds[$key]['id_carrier_reference'] = $carriers;
                $productsIds[$key]['id_shop'] = 1;  
        }

    foreach ($productsIds as $productsId) {
        $product[] = $productsId;
    }

        var_dump($product);

    return $productsIds;
}

它会显示

示例CSV:

代码语言:javascript
复制
831S587 0
822 0
10601   13
61703111    0

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 05:19:49

谢谢你的回答这里是什么胜地

我需要函数setCarriers()的这种格式;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51143028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档