Oto tresc porady z innego forum:
"Na chwile obecna w prescie jest tak że jezeli produkt A powiążemy z produktem B to to powiązanie jest jedno stronne. Jeżeli chcemy aby automatycznie na stronie produktu B było pokazane ze jest on powiązany z A to w classes/Product.php w funkcji
foreach ($accessories_id as $id_product_2)
dodajemy linie
Kod: Zaznacz cały
Db::getInstance()->AutoExecute(_DB_PREFIX_.'accessory', array('id_product_1' => (int)($id_product_2), 'id_product_2' => (int)($this->id)), 'INSERT');
W przypadku gdy chcemy za jednym razem powiązać produkty A, B, C, D .... każdy z każdym
należy dodać jeszcze do tego ten kod
foreach ($accessories_id as $pomoc){
if($id_product_2!=$pomoc)
Db::getInstance()->AutoExecute(_DB_PREFIX_.'accessory', array('id_product_1' => (int)($id_product_2), 'id_product_2' => (int)($pomoc)), 'INSERT');
}
Jest to przydatne gdy produkty powiązane sa zamiennikami w przypadku gdy produkt A jest zamiennikiem produkty B a B jest zamiennikiem C to C musi też być zamiennikiem A wystarczy dodać produkty i w jednym z nich zrobić powiązania a reszta doda się z automatu."
Zrobilem tak jak w opisie i oto moj kod:
public function changeAccessories($accessories_id)
{
foreach ($accessories_id as $id_product_2)
Db::getInstance()->AutoExecute(_DB_PREFIX_.'accessory', array('id_product_1' => (int)($this->id), 'id_product_2' => (int)($id_product_2)), 'INSERT');
Db::getInstance()->AutoExecute(_DB_PREFIX_.'accessory', array('id_product_1' => (int)($id_product_2), 'id_product_2' => (int)($this->id)), 'INSERT');
foreach ($accessories_id as $pomoc){
if($id_product_2!=$pomoc)
Db::getInstance()->AutoExecute(_DB_PREFIX_.'accessory', array('id_product_1' => (int)($id_product_2), 'id_product_2' => (int)($pomoc)), 'INSERT');
}
}
Problem w tym, ze gdy chce powiazac cztery produkty A, B, C, D, to wzajemne powiazanie mam wylacznie w dwoch skrajnych, tj.:
- produkt A jest powiazany z B, C, D,
- produkt B nie ma powiazania,
- produkt C nie ma powiazania,
- produkt D ma powiazanie z A, B, C
Co dziwne, wazna jest tu kolejnosc powiazywania produktow. Dla powyzszej sytuacji produkt A wiazalem po kolei z B, C, D. Natomiast gdy zmieniam kolejnosc; produkt A wiaze z D, C, B, to otrzymuje takie powiazanie:
- produkt A jest powiazany z B, C, D,
- produkt B jest powiazany z A, C, D
- produkt C nie ma powiazania,
- produkt D nie ma powiazania.
Jakies pomysly?