[Помогите] Помогите переделать запрос.

Тема в разделе "OpenCart", создана пользователем cereberlum, 24 ноя 2013.

  1. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Друзья, взял модуль тут - хотел его переделать чтобы прикручивать карту к записям блога (Блог|Отзывы|Галерея) все бы ни чего но ни как не пойму как вставить в модель \admin\model\catalog\record.php запрос к базе, сейчас у меня при сохранении ошибок не выдает модуль, но и данные в базе не сохраняются. Изначально модуль предусматривал использование запроса
    Код:
    $this->db->query("UPDATE " . DB_PREFIX . "product SET gmap_width = '" . (int)$data['gmap_width'] . "', gmap_height = '" . (int)$data['gmap_height'] . "', gmap_zoom = '" . (int)$data['gmap_zoom'] . "', gmap_type = '" . $this->db->escape($data['gmap_type'])  . "', gmap_address = '" . $this->db->escape($data['gmap_address'])  . "', gmap_lat_and_lng = '" . $this->db->escape($data['gmap_lat_and_lng'])  . "' WHERE product_id = '" . (int)$product_id . "'");
    я переписал его
    Код:
    $this->db->query("UPDATE " . DB_PREFIX . "record SET gmap_width = '" . (int)$data['gmap_width'] . "', gmap_height = '" . (int)$data['gmap_height'] . "', gmap_zoom = '" . (int)$data['gmap_zoom'] . "', gmap_type = '" . $this->db->escape($data['gmap_type'])  . "', gmap_address = '" . $this->db->escape($data['gmap_address'])  . "', gmap_lat_and_lng = '" . $this->db->escape($data['gmap_lat_and_lng'])  . "' WHERE record_id = '" . (int)$product_id . "'");
    но не знаю как правильно (в какой фрагмент документа) вставить. Все необходимые поля в базе создал. Вот файл \admin\model\catalog\record.php http://yadi.sk/d/C2vzS4NYDE2gA
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    что передается в: record_id = '" . (int)$product_id . "' ?
     
  3. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Пардон, это я здесь ошибся, в запросе своем делал замену эту
    Код:
    $this->db->query("UPDATE " . DB_PREFIX . "record SET gmap_width = '" . (int)$data['gmap_width'] . "', gmap_height = '" . (int)$data['gmap_height'] . "', gmap_zoom = '" . (int)$data['gmap_zoom'] . "', gmap_type = '" . $this->db->escape($data['gmap_type'])  . "', gmap_address = '" . $this->db->escape($data['gmap_address'])  . "', gmap_lat_and_lng = '" . $this->db->escape($data['gmap_lat_and_lng'])  . "' WHERE record_id = '" . (int)$record_id . "'");
    сейчас у меня не записываются значения в базу, но если вручную (правкой таблицы) вносить изменения а потом, пытаться записать из админки - поля затираются. Собственно подозреваю что не туда или не так я поставил запрос. (сейчас поставил его два раза после
    Код:
    foreach ($data['record_tag'] as $language_id => $value) {
                if ($value) {
                    $tags = explode(',', $value);
                    foreach ($tags as $tag) {
                        $this->db->query("INSERT INTO " . DB_PREFIX . "record_tag SET record_id = '" . (int) $record_id . "', language_id = '" . (int) $language_id . "', tag = '" . $this->db->escape(trim($tag)) . "'");
                    } //$tags as $tag
                } //$value
            } //$data['record_tag'] as $language_id => $value
            $this->db->query("UPDATE " . DB_PREFIX . "record SET gmap_width = '" . (int)$data['gmap_width'] . "', gmap_height = '" . (int)$data['gmap_height'] . "', gmap_zoom = '" . (int)$data['gmap_zoom'] . "', gmap_type = '" . $this->db->escape($data['gmap_type'])  . "', gmap_address = '" . $this->db->escape($data['gmap_address'])  . "', gmap_lat_and_lng = '" . $this->db->escape($data['gmap_lat_and_lng'])  . "' WHERE record_id = '" . (int)$record_id . "'");
            if ($data['keyword']) {
                $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias_blog SET query = 'record_id=" . (int) $record_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");
            } //$data['keyword']
    вот так)
     
  4. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    По ходу, ты обновляешь запись там, где она должна создаваться при записи (новой), либо не в том месте UPDATE ставишь, либо нет добавления нового поля с данными о карте и просто перезатирается - текущий.
     
    cereberlum нравится это.
  5. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Одним словом поставил UPDATE в другом месте, и теперь в базу все пишется. Единственное, на странице редактирования записи значений из базы не видно, это нормально? Как они вообще туда выводиться должны?
     
  6. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    Смотри в сторону functionGetRecord или что то подобное, которая делает выборку из базы и выводит текущие значения, вот там то тебе и надо добавить ещё и выбор с карты.
     
    cereberlum нравится это.