我实现了一个脚本来使用CSV更新一个表的prestashop -> product_carrier。我的CSV有2列。
一个"reference“列和一个"true / false”列。当我浏览CSV并且引用等于0时,我在表中插入了3行关于载体引用的内容。我的问题是,当我浏览CSV时,var_dump会显示NULL,而我不明白为什么。下面是我的代码:
<?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:
831S587 0
822 0
10601 13
61703111 0谢谢你的帮助。
发布于 2018-07-03 05:19:49
谢谢你的回答这里是什么胜地

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

https://stackoverflow.com/questions/51143028
复制相似问题