prima di tutto vengono svuotate le tabelle in scrittura cosi da azzerare i campi contatore.
una volta recuperato i dati dal csv e caricati in un'array riga per riga vengono scritte le tabelle.
questa è la query di inserimento
Codice PHP:
function sql_product($x,$y) {
$val = "REPLACE `"._DB_PREFIX_."product`(
`id_product`,`id_category_default`,`id_shop_default`,`id_tax_rules_group`,`on_sale`,
`online_only`,`ecotax`,`minimal_quantity`,`price`,`wholesale_price`,`unity`,`unit_price_ratio`,
`additional_shipping_cost`,`customizable`,`uploadable_files`,`text_fields`,`active`,`redirect_type`,
`id_product_redirected`,`available_for_order`,`condition`,`indexed`,
`cache_default_attribute`,`advanced_stock_management`,
`reference`,`supplier_reference`,`location`,`width`,`height`,`depth`,`weight`,`out_of_stock`,`quantity_discount`,
`cache_is_pack`,`cache_has_attachments`,`is_virtual`,`id_supplier`,`id_manufacturer`,`ean13`,`upc`,`quantity`,
`date_add`, `date_upd`, `available_date`
) VALUES (".(int)$x.",".$y."'".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."')";
return $val;
}
Questo è lo script che scrive fisicamente i record.
Codice PHP:
if (!Db::getInstance()->query(sql_product($pid,$arystr[0].",".$riga))) {
echo sql_product($pid,$arystr[0].",".$riga)."<br>";
scriviriga ("Errore ",Db::getInstance()->getNumberError()." - ".Db::getInstance()->getMsgError(),$filedilog);
die('<p>Error: '.Db::getInstance()->getNumberError()." - ".Db::getInstance()->getMsgError()).'<br>$riga</p>';
} {
//scriviriga ("Scrittura"," sql_product ",$filedilog);
if ((int)$_GET['output'] == 1) {echo "<p>Articolo ID $row[0] Aggiunto/Aggiornato in product</p>";}
}
scriviriga è una funzione per tenere un log di quello che avviene.