Jump to content
  • 0

Wzajemne powiązanie produktów


petrg

Question

Witam

Mama taki "mały" problem, próbuję powiązać produkty między sobą, stworzyć pętle między produktami tzn. dodaję powiązanie produktu A z produktem  B,C,D,E itd. i chciałbym aby wszystkie te produkty były automatycznie powiązane ze sobą tak żebym nie musiał tego robić dla każdego z osobna, znalazłem takie rozwiązanie na forum dla pliku classes/Product.php

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');
            }
        }
    }

ale niestety nie działa ono dla mnie:/ byłbym wdzięczny za wszelkie sugestie.

 

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Taki kod działa tylko jak już macie jakeś powiązania zrobione to trzeba w nie wejść i je zapisać jeszcze raz.

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');
            }
        }
   }
Link to comment
Share on other sites

  • 0

Cześć,

 

Właśnie tego szukałem, dzięki! Stary post, ale przydatny więc wykopię.

Doprecyzuję tylko, że zmian należy dokonać w classes/product.php

W moim przypadku okolice linii 3611 - do podmiany cała sekcja Accesories_id ze standardowego kodu na powyższy.

Po modyfikacji, po wejściu w dowolny powiązany produkt i jego ponownym zapisie nadpisują się wszystkie powiązania we wszystkich powiązanych produktach.

Pozdrowienia!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...