Вход • Регистрация

Поиск по параметрам со значением от и до

  • 31 марта 2015 г.
  • Всем привет! Вот задачка:

    Есть значение характеристик, к примеру длинна стола

    Товар 1: Длина стола - 1,5 м.
    Товар 2: Длина тола - 2,1 м.
    Товар 3: Длина стола - 3,2 м.

    Как сделать, чтобы в фильтре по магазину этот параметр был со значением от и до (как цена). Может кто делал уже что-то похожее?
    К прмиеру мне нужны столы с длиной от 1,2 до 2,5 м.
    • 31 марта 2015 г. , редакция: 31 марта 2015 г.
    • Форма на странице

      Код

      if (! empty($result["price"]))
      {
      echo '<div class="shop_search_price">
      <span class="input-title">'.$this->diafan->_('Цена').':</span>
      <div>
      <input type="text" class="from" name="pr1" value="'.$result["price"]["value1"].'">
      &nbsp;-&nbsp;
      <input type="text" class="to" name="pr2" value="'.$result["price"]["value2"].'">
      </div>
      </div>';
      }


      В модельке

      Код

      if (! empty($result["price"]))
      {
      $result["price"]["value1"] = $this->diafan->filter($_REQUEST, "int", "pr1");
      $result["price"]["value2"] = $this->diafan->filter($_REQUEST, "int", "pr2");
      }


      Попробую от этого оттолкнуться
      • 31 марта 2015 г.
      • И тут еще)))

        Код
        if (!empty($_REQUEST["pr1"]) || !empty($_REQUEST["pr2"]))
        {
        if (!empty($_REQUEST["pr1"]))
        {
        $pr1 = $this->diafan->filter($_REQUEST, "int", "pr1");
        $getnav .= '&pr1='.$pr1;
        }
        if (!empty($_REQUEST["pr2"]))
        {
        $pr2 = $this->diafan->filter($_REQUEST, "int", "pr2");
        $getnav .= '&pr2='.$pr2;
        }
        $where_param .= " INNER JOIN {shop_price} AS pr ON pr.good_id=s.id AND pr.trash='0'"
        ." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
        ." AND pr.currency_id=0"
        ." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
        ." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")";
        $group = ", pr.price_id HAVING"
        .(!empty($_REQUEST["pr1"]) ? " MIN(ROUND(pr.price))>=".$pr1 : '')
        .(!empty($_REQUEST["pr2"]) ? (!empty($_REQUEST["pr1"]) ? " AND" : "")." MIN(pr.price)<=".$pr2 : '');
        }
        else
        {
        $where_param .= " LEFT JOIN {shop_price} AS pr ON pr.good_id=s.id AND pr.trash='0'"
        ." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
        ." AND pr.currency_id=0"
        ." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
        ." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")";
        }
  • 02 апреля 2015 г.
  • а разве характеристика с типом "число" не так же работает?

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум