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

Максимальная - минимальная цена в поиске по товарам

  • 27 сентября 2013 г.
  • Каким образом в shop.view.show_search.php можно запулить максимальные и минимальные цены по выбранной категории и всем вложенным?
    может кто-то уже реализовывал, подскажите новичку в какую сторону копать.
    понимаю, что нужно добавить функцию в модель, а затем выполнить ее в show_search в контроллере и выпулить в шаблон.

    хотелось бы услышать совет по тру реализации сей модификации )
  • 27 сентября 2013 г.
  • а если кто-нибудь напишет нужный майэскуэль запрос, то благодарности моей не будет предела
    • 27 сентября 2013 г.
    • Чтобы там не нули были в value?
      • 27 сентября 2013 г.
      • нет, хочу сделать ползунки, а крайними значениями установить минимальную цену товара в категории и максимальную.
        т.е. требуется пробежаться по всем ценам товаров выбранной категории и её детей и выбрать самую большую цену.
        • 28 сентября 2013 г.
        • Если у дочерних категорий есть еще дочерние категории, а у них еще дочерние категории то запрос может получиться весьма замороченным. Посмотрим что гуру скажут, например Виталий :)
    • 30 сентября 2013 г.
    • Надо смотреть конкретную задачу, сайт, и т.д.
      Мы прям недавно делали сайт, где надо было как раз отбирать мин-мах цены для ползунка в категории.
      Запрос во вьюхе такой:
      Код

      $cat_ids = array(); //тут категории. Или одна, в которой ищем, или несколько, текущая и вложенные в нее
      foreach ($result_content['cat_ids'] as $info)
      {
      $cat_ids[] = $info['id'];
      }


      $good_ids = array();
      $result = DB::query(
      "SELECT s.id FROM {shop} AS s"
      .($this->diafan->_user->id ? " LEFT JOIN {access} AS a ON a.element_id=s.id AND a.module_name='shop'" : "")
      .($cat_ids ? " INNER JOIN {shop_category_rel} AS r ON s.id=r.element_id AND r.cat_id IN (%s)": '')
      ." WHERE s.[act]='1' AND s.trash='0'"
      ." AND (s.access='0'"
      .($this->diafan->_user->id ? " OR s.access='1' AND a.role_id=".$this->diafan->_user->role_id : '')
      .")"
      , implode(',', $cat_ids));

      while ($row = DB::fetch_array($result))
      {
      $good_ids[] = $row['id']; //набиваем пачку всех товаров из нужных нам категорий в массив
      }

      $result_content["price"] = DB::fetch_array(DB::query("SELECT MIN(price) AS 'min',MAX(price) AS 'max' FROM {shop_price} WHERE trash='0'"
      .($good_ids?" AND good_id IN (".implode(',', $good_ids).")":'')));
      //затем по этому массиву товаров выуживаем из БД максимальное и минимальное значение


      Во вьюхе их выводим:
      Код
      Цена: от'.$result['price']['min'].' до '.$result['price']['max'].' руб.
  • 21 октября 2016 г.
  • //затем по этому массиву товаров выуживаем из БД максимальное и минимальное значение
    Можно пояснить?
  • 25 ноября 2017 г. , редакция: 25 ноября 2017 г.
  • Сделал свой вариант поиска минимальной и максимальной стоимости для текущей категории.

    Все это делал в shop.view.show_search.php

    Код
    //собираем максимальную и минимальную стоимость
    $ids_price_array = DB::query_fetch_all("
    SELECT MIN(price) AS 'min',MAX(price) AS 'max' FROM {shop_price} AS p
    INNER JOIN {shop_category_rel} AS r
    ON p.good_id=r.element_id AND r.cat_id=" . $result["cat_id"] . " AND r.trash='0'
    ");

    echo 'Минимальная стоимость: ' . $ids_price_array[0]['min'] . '<br>';
    echo 'Максимальная стоимость: ' . $ids_price_array[0]['max'] . '<br>';

Новости

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

Форум