Здравствуйте, решил сделать клон рекомендуемых товаров, которые выводятся в карточке товара, но возникла проблема, а именно при сохранении клона рекомендуемых и переходе снова в этот же товар в админке в поле клона рекомендуемых нет ни одного товара и при сохранении товара удаляются из бд, хотя записи в базе данных при первом сохранении имеются и во фронтенде все выводится. И так что я сделал: в модели товара в админке после PHP: if (isset($data['product_related'])) { foreach ($data['product_related'] as $related_id) { $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $product_id . "' AND related_id = '" . (int) $related_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int) $product_id . "', related_id = '" . (int) $related_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $related_id . "' AND related_id = '" . (int) $product_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int) $related_id . "', related_id = '" . (int) $product_id . "'"); } } вставил PHP: if (isset($data['product_sparts'])) { foreach ($data['product_sparts'] as $sparts_id) { $this->db->query("DELETE FROM " . DB_PREFIX . "product_sparts WHERE product_id = '" . (int) $product_id . "' AND sparts_id = '" . (int) $sparts_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_sparts SET product_id = '" . (int) $product_id . "', sparts_id = '" . (int) $sparts_id . "'"); } } там же после PHP: $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int) $product_id . "'"); if (isset($data['product_related'])) { foreach ($data['product_related'] as $related_id) { $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $product_id . "' AND related_id = '" . (int) $related_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int) $product_id . "', related_id = '" . (int) $related_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $related_id . "' AND related_id = '" . (int) $product_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int) $related_id . "', related_id = '" . (int) $product_id . "'"); } } вставил PHP: $this->db->query("DELETE FROM " . DB_PREFIX . "product_sparts WHERE product_id = '" . (int) $product_id . "'"); if (isset($data['product_sparts'])) { foreach ($data['product_sparts'] as $sparts_id) { $this->db->query("DELETE FROM " . DB_PREFIX . "product_sparts WHERE product_id = '" . (int) $product_id . "' AND sparts_id = '" . (int) $sparts_id . "'"); $this->db->query("INSERT INTO " . DB_PREFIX . "product_sparts SET product_id = '" . (int) $product_id . "', sparts_id = '" . (int) $sparts_id . "'"); } } там же после PHP: $data['product_related'] = $this->getProductRelated($product_id); вставил PHP: $data['product_sparts'] = $this->getProductSparts($product_id); там же после PHP: $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int) $product_id . "'"); вставил PHP: $this->db->query("DELETE FROM " . DB_PREFIX . "product_sparts WHERE product_id = '" . (int) $product_id . "'"); там же после PHP: public function getProductRelated($product_id) { $product_related_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int) $product_id . "'"); foreach ($query->rows as $result) { $product_related_data[] = $result['related_id']; } return $product_related_data; } вставил PHP: public function getProductSparts($product_id) { $product_sparts_data = array(); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_sparts WHERE product_id = '" . (int) $product_id . "'"); foreach ($query->rows as $result) { $product_sparts_data[] = $result['sparts_id']; } return $product_related_data; } в контролере товара в админке после PHP: if (isset($this->request->post['product_related'])) { $products = $this->request->post['product_related']; } elseif (isset($this->request->get['product_id'])) { $products = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); } else { $products = array(); } $data['product_relateds'] = array(); foreach ($products as $product_id) { $related_info = $this->model_catalog_product->getProduct($product_id); if ($related_info) { $data['product_relateds'][] = array( 'product_id' => $related_info['product_id'], 'name' => $related_info['name'] ); } } вставил PHP: if (isset($this->request->post['product_sparts'])) { $products2 = $this->request->post['product_sparts']; } elseif (isset($this->request->get['product_id'])) { $products2 = $this->model_catalog_product->getProductSparts($this->request->get['product_id']); } else { $products2 = array(); } $data['product_spartss'] = array(); foreach ($products2 as $product_id) { $sparts_info = $this->model_catalog_product->getProduct($product_id); if ($sparts_info) { $data['product_spartss'][] = array( 'product_id' => $sparts_info['product_id'], 'name' => $sparts_info['name'] ); } } и в шаблоне HTML: <div class="form-group"> <label class="col-sm-2 control-label" for="input-sparts"><span data-toggle="tooltip" title="{{ help_sparts }}">{{ entry_sparts }}</span></label> <div class="col-sm-10"> <input type="text" name="sparts" value="" placeholder="{{ entry_sparts }}" id="input-sparts" class="form-control" /> <div id="product-sparts" class="well well-sm" style="height: 150px; overflow: auto;"> {% for product_sparts in product_spartss %} <div id="product-sparts{{ product_sparts.product_id }}"><i class="fa fa-minus-circle"></i> {{ product_sparts.name }} <input type="hidden" name="product_sparts[]" value="{{ product_sparts.product_id }}" /> </div> {% endfor %}</div> </div> </div> Где же я обшибся?
нашел обшибку, в файле модели вместо return $product_related_data; надо было return $product_sparts_data;