-3
I didn’t post the entire code before because it was too extensive (I’ve summarized it by taking some irrelevant data), now it’s the entire code. I’m taking values from the products, I run a foreach picking up the ID of each one and then pull the data from that product, when it arrives in 'categoria'=>$produto_loaded->getCategoryIds(), it brings me an array of numbers because the product is in several categories, when I will insert this array again in the table as below it inserts only the name Array.
Code
ini_set("display_errors", 1);
ini_set('memory_limit','1024M');
require_once('app/Mage.php');
Mage::app(0);
$collection = Mage::getModel('catalog/product')->getCollection();
foreach ($collection as $key => $produto) {
$id = $produto->getId();
$produto_loaded = Mage::getModel('catalog/product')->load($id);
$tudo = array(
'categoria'=>$produto_loaded->getCategoryIds(),
'positioncat'=>$produto_loaded->getPosition(),
'loja'=>addslashes($produto_loaded->getStoreId()),
'atributo_id'=>addslashes($produto_loaded->getAttributeSetId()),
'tipo_de_produto'=>addslashes($produto_loaded->getTypeID()),
'id_produto' =>addslashes($produto_loaded->getId()),
'sku'=>addslashes($produto_loaded->getSku()),
'status'=>addslashes($produto_loaded->getStatus()),
'visibilidade'=>addslashes($produto_loaded->getVisibility()),
'nome'=>addslashes($produto_loaded->getName()),
'descriçao'=>addslashes($produto_loaded->getDescription()),
'nomeurl'=>addslashes($produto_loaded->getProductUrl()));
$teste = $tudo['id_produto'];
$link = mysqli_connect('localhost','root','','teste2');
$link->set_charset("utf8");
$query =
"SELECT a.website_id as websiteid,
b.category_id as categoria,
b.position as positioncat
FROM catalog_product_website a
INNER JOIN catalog_category_product b
ON a.product_id = b.product_id
WHERE a.product_id = '$teste'";
$select = mysqli_query($link, $query);
while ($row = mysqli_fetch_array($select)) {
$websiteid = $row['websiteid'];
}
if($produto_loaded->getTypeId() == 'bundle'){
$teste = $tudo['id_produto'];
$link = mysqli_connect('localhost','root','','teste2');
$link->set_charset("utf8");
$query = "SELECT selection_id as select_id, option_id as option_bundle, position as position_bundle, parent_product_id as bundle_id, product_id as prod_id, is_default as padrao, selection_price_type as tipodepreco, selection_price_value as preco_bundle, selection_qty as qtd, selection_can_change_qty as mudarqtd from catalog_product_bundle_selection WHERE parent_product_id = '$teste'";
$select = mysqli_query($link, $query);
foreach($select as $s){
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$query = "INSERT INTO produtos (`loja`, `websiteid`, `atributo_id`, `tipo_de_produto`, `id_produto`, `sku`, `status`, `visibilidade`, `nome`, `descriçao`, `nomeurl`, `categoria`,) VALUES ('".$tudo['loja']."', '".$websiteid."', '".$tudo['atributo_id']."', '".$tudo['tipo_de_produto']."', '".$tudo['id_produto']."', '".$tudo['sku']."', '".$tudo['status']."', '".$tudo['visibilidade']."', '".$tudo['nome']."', '".$tudo['descriçao']."', '".$tudo['nomeurl']."', '".$tudo['categoria']."', '".$s['bundle_id']."', '".$s['prod_id']."', '".$s['position_bundle']."', '".$s['option_bundle']."', '".$s['select_id']."', '".$s['padrao']."', '".$s['tipodepreco']."', '".$s['preco_bundle']."', '".$s['qtd']."', '".$s['mudarqtd']."')";
$connection->query($query);
}
} else {
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
$query = "INSERT INTO produtos (`loja`, `websiteid`, `atributo_id`, `tipo_de_produto`, `id_produto`, `sku`, `status`, `visibilidade`, `nome`, `descriçao`, `nomeurl`, `categoria`) VALUES ('".$tudo['loja']."', '".$websiteid."', '".$tudo['atributo_id']."', '".$tudo['tipo_de_produto']."', '".$tudo['id_produto']."', '".$tudo['sku']."', '".$tudo['status']."', '".$tudo['visibilidade']."', '".$tudo['nome']."', '".$tudo['descriçao']."', '".$tudo['nomeurl']."', '".$tudo['categoria']."')";
$connection->query($query);
}
}
?>
You are probably saving the array as a whole, and not taking the data from each position. Put the code that does that
insert– Christian Beregula
You’ll get better answers if you give people code they can use to reproduce the problem
– user60252
I updated the question with more information, if you need any additional information just ask!
– Gustavo Souza
It would be better to turn this
ArrayinJSON– William Aparecido Brandino
how many columns are in the table?
– user60252
I’ll rephrase the question
– Gustavo Souza
is a product with several categories?
– Guilherme Nascimento
I edited the question, see if it helps.
– Gustavo Souza
But do you want to update a product or insert a new one? Or do you just want to insert the categories into an existing product, or is it all created on time?
– Guilherme Nascimento
I’m making a change from an old bank, I want to take all products with their categories and insert in another bank, then I take all this to a table and then insert in the new bank
– Gustavo Souza