while ($r = tep_db_fetch_array($dbq)) {
    if ($r['finishing_goldplate'] == '1' && !in_array($r['products_id'], $goldplated)) {
        $goldplated[] = $r['products_id'];
    }
    if (!isset($products[$r['products_id']])) {
        $products[$r['products_id']] = array();
    }
    if (!is_null($r['attribute_material_id']) && !in_array($r['attribute_material_id'], $products[$r['products_id']])) {
        $products[$r['products_id']][] = $r['attribute_material_id'];
    }
}
//echo "<pre>";var_dump($products);
//die();
foreach ($products as $pid => $materials_id) {
    //    echo "$pid : ";print_r($materials_id);
    //    echo "<br
    if (count($materials_id) > 0) {
        if (in_array($pid, $goldplated)) {
            $key = array_search('1', $materials_id);
            if ($key !== false) {
                unset($materials_id[$key]);
            }
            $materials_id[] = '17';
        }
        $class_pm->setProductMaterials($pid, $materials_id);
        $class_cp->setParams($pid, 'M');
        echo "Product {$pid} , materials_id's (" . implode(",", $materials_id) . ") added <br/>";
    } else {
        echo "No Material found: {$pid}<br/>";
    }
}
 function refreshProductDataSupport($data)
 {
     //MUST UPDATES AFTER ADD-UPDATE-DELETE ELEMENTS
     $pid = $data['pid'];
     use_class('jng_sp_catalog_params');
     $class_jcp = new jng_sp_catalog_params();
     $class_jcp->setParams($pid, 'M');
     $this->calculateMaterialExpenses($pid);
     if ($data['contain_stones']) {
         $this->calculateStoneTotal($pid);
     }
     $this->updateComplexity($pid);
     $this->setSellingPointToProducts($pid);
     use_class('products_family');
     $family = new products_family();
     $family->refreshFamilyMatchKey($pid);
 }