Перейти к содержанию

C0DENAMED

Новичок
  • Публикаций

    26
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о C0DENAMED

  • Звание
    Пользователь

Посетители профиля

840 просмотров профиля
  1. Проблема решилась. Оказалось что при редактировании оно берет данные не из базы а из формы. Соответственно нужно было сделать input и тогда оно будет подцеплять значение оттуда.
  2. Выдает вот что: Notice: Undefined index: merlion_id in /...../public_html/vqmod/vqcache/vq2-admin_model_catalog_product.php on line 126Notice: Error: Duplicate entry '0' for key 'merlion_id' Error No: 1062 UPDATE oc_product SET model = 'DADF-P2', sku = '', upc = '', ean = '', jan = '', isbn = '', mpn = '', location = '', quantity = '1', minimum = '1', subtract = '1', stock_status_id = '6', date_available = '-0001-11-30', manufacturer_id = '16', shipping = '1', price = '0', points = '0', weight = '10.5', weight_class_id = '1', length = '0', width = '0', height = '0', length_class_id = '1', status = '1', tax_class_id = '0', sort_order = '1', merlion_id = '0', date_modified = NOW() WHERE product_id = '22351' in /.../public_html/system/database/ipsmysql.php on line 53 Только где его искать?
  3. Возникла такая проблема: В таблицу oc_products добавлена новая строка с айдишником. При редактировании какого-либо товара через админку этот айдишник естественно не учитывается и по умолчанию ставится 0. Как исправить это недоразумение? Нужно что-бы при редактировании товара он подхватывал этот айдишник из базы, но на практике это реализовать оказалось не так то просто. Первое что пришло в голову лезть в model/catalog/product.php и найти там функцию editProduct($product_id, $data) Добавил новый айдишник сюда: $this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', merlion_id = '" . (int)$data['merlion_id'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'"); Затем сюда: controller/module/product.php Нашел функцию getForm и добавил это: if (isset($this->request->post['merlion_id'])) { $this->data['merlion_id'] = $this->request->post['merlion_id']; } elseif (!empty($product_info)) { $this->data['merlion_id'] = $product_info['merlion_id']; } else { $this->data['merlion_id'] = ''; } Так же и в функции getList(): Добавил: $this->data['products'][] = array( 'product_id' => $result['product_id'], 'merlion_id' => $result['merlion_id'], 'name' => $result['name'], 'model' => $result['model'], 'price' => $result['price'], 'special' => $special, 'image' => $image, 'quantity' => $result['quantity'], 'status' => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')), 'selected' => isset($this->request->post['selected']) && in_array($result['product_id'], $this->request->post['selected']), 'action' => $action ); Но оно все равно не фурычит. Ставит 0, как будто из базы не берет. Подскажите, что пропустил, не могу придумать ничего.
  4. Ребят, подскажите пожалуйста будет ли работать этот модуль с 1С 7.7?
  5. Признателен за помощь. Действительно, получилось с SHOW TABLE STATUS. Получилось так: $last_id = $this->db->query("SHOW TABLE STATUS LIKE '" . DB_PREFIX . "manufacturer'"); $manufacturer_id = ($last_id->row['Auto_increment'] - 1);
  6. Ребят, нужна помощь компетентных людей. При разработке наткнулся на такую проблемку: //manufacturer $this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "manufacturer SET name = '" . $row->Brand . "'"); $manufacturer_id = $this->db->getLastId(); $this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "manufacturer_to_store SET manufacturer_id = '" . (int)$manufacturer_id . "', store_id = '0'"); Это выполняется в цикле, при добавлении товаров. При попадании на товар у которого $row->Brand дублируется и оператор INSERT IGNORE пропускает его, то $manufacturer_id = $this->db->getLastId() становится 0. Почему он обнуляется и как можно по-другому решить эту проблему? Мне нужно чтобы он брал число из AUTO_INCREMENT.
  7. Да, понадобился. Оказалось просто. А можно же тогда вызвать уже готовую функцию прямо из model? Чем переписывать это все... Вот только там $this что такое не могу понять. Что нужно присоединить, чтобы он понимал $this->db->query ? Или проще просто заменить на $db->query?
  8. Ознакомлюсь. Просто не хотелось в такой простой скрипт пихать кишки от опенкарта, когда можно вроде как обойтись обычными Mysql запросами...
  9. Результат пустой! Ошибки не показывает, поэтому немогу понять в чем дело. Пробовал по разному и mysql_query("..."). Сам скрипт проходит до конца, то есть после выполнения выводит done. Вот тот же самый кусок из модуля, например. // Establishing parent connections. $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category"); foreach ($query->rows as $row) { $category_id = $row['category_id']; $merlion_parent_id = $row['merlion_parent_id']; if ($merlion_parent_id == 'Order') { $this->db->query("UPDATE " . DB_PREFIX . "category SET parent_id = '0', `top` = '1', `column` = '1', status = '1', date_modified = NOW(), date_added = NOW() WHERE category_id = '". (int)$category_id ."'"); } else { $search = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "category WHERE merlion_id = '" . $merlion_parent_id . "'"); $parent_id = $search->row["category_id"]; $this->db->query("UPDATE " . DB_PREFIX . "category SET parent_id = '". (int)$parent_id ."', `column` = '1', status = '1', date_modified = NOW(), date_added = NOW() WHERE category_id = '" . (int)$category_id ."'"); } $this->cache->delete('category'); }
  10. Вот тут: Этот запрос не проходит или что. Такое ощущение что выборку не делает. Точно такой же запрос через ОС проходит. $select = $con->query("SELECT * FROM oc_category") or die("Error in the consult.." . mysqli_error($con)); foreach ($select->rows as $row) { if ($row['merlion_parent_id'] == 'Order') { $result = $con->query("UPDATE oc_category SET parent_id = '0', top = '1', column = '1', status = '1', date_modified = NOW(), date_added = NOW() WHERE category_id = '". (int)$row['category_id'] ."'") or die("Error in the consult.." . mysqli_error($con)); }
  11. Запрос не выполняется, который идет в //establishing parent connections
  12. Спасиб, думал об этом, но все же. Большая часть кода работает, а вот тот запрос почему-то не хочет.
  13. Приветствую, ребят возникла проблема. Пытаюсь написать отдельный .php скрипт, который бы работал без участия магазина на сервере, и обновлял товары. Некоторое время назад я написал дополнение, которое нажатием кнопки позволяло выгружать и обновлять товары со склада поставщика через АПИ, в общем-то скрипт рабочий, теперь появилась необходимость сделать внешнюю версию, которую можно запускать на хостинге через SSH или планировщик. Фишка в том, что мои навыки программирования оставляют желать лучшего, пишу методом тыка. Итак, вот проблемный момент: Простейший php скрипт <?php // DB $DB_HOSTNAME = "localhost"; $DB_USERNAME = "vladbl0m_eshop"; $DB_PASSWORD = "***********"; $DB_DATABASE = "vladbl0m_eshop"; $con=mysqli_connect($DB_HOSTNAME, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE); if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL:" . mysqli_connect_error(); } else { echo "CONNECTED TO " . $DB_DATABASE; . . . . . // Establishing parent connections. $select = $con->query("SELECT * FROM oc_category") or die("Error in the consult.." . mysqli_error($con)); foreach ($select->rows as $row) { if ($row['merlion_parent_id'] == 'Order') { $result = $con->query("UPDATE oc_category SET parent_id = '0', top = '1', column = '1', status = '1', date_modified = NOW(), date_added = NOW() WHERE category_id = '". (int)$row['category_id'] ."'") or die("Error in the consult.." . mysqli_error($con)); } else { $search = $con->query("SELECT category_id FROM oc_category WHERE merlion_id = '" . $merlion_parent_id . "'"); $parent_id = $search->row["category_id"]; $result = $con->query("UPDATE oc_category SET parent_id = '". (int)$parent_id ."', column = '1', status = '1', date_modified = NOW(), date_added = NOW() WHERE category_id = '" . (int)$category_id ."'") or die("Error in the consult.." . mysqli_error($con)); } } echo "done"; ?> Так вот. Эта часть выполняется пустой, то есть проходит done. и все. Запрос как будто в упор не видит. Если запускать такой же скрипт через магазин, то выполняет без проблем. Есть идеи?
  14. Да. Но по другому вопросу (тот уже решил).
×