Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Можно ли оптимизировать такой код/запрос


Recommended Posts

Запрос отвечает за групировку на сайте . Пока нашел метод оптимизации только путем кеширования всей сраницы Кешировщиком по времени.

Создает по запросу на товар и так при каждой загрузке страницы :(

Был бы признателен за помощь.
 

    public function getChangeStatusGroup(){

        $query_group_name = $this->db->query("SELECT DISTINCT group_stage FROM " . DB_PREFIX . "product_description");


         foreach ($query_group_name -> rows as $group_st) {

            $query0 = $this->db->query("SELECT p.product_id, p.quantity, pd.group_stage, p.status FROM  `" . DB_PREFIX . "product` AS p,  `" . DB_PREFIX . "product_description` AS pd WHERE pd.group_stage =  '" . $group_st['group_stage'] . "' && p.`product_id` = pd.`product_id` ORDER BY  `p`.`quantity` DESC ");

            $i = 1;

            foreach ($query0->rows as $query_row) {


                if ($i == 1 && $query_row['status'] != 0) {

                    $this->db->query("UPDATE  `" . DB_PREFIX . "product` SET  `selected` =  '1' WHERE  `product_id` = ' " . $query_row['product_id'] . "'");
                } else {
                    $this->db->query("UPDATE  `" . DB_PREFIX . "product` SET  `selected` =  '0' WHERE  `product_id` = ' " . $query_row['product_id'] . "'");
                    if ($i == 1) {
                        $i--;
                    }
                }
                $i++;
            }


        }
        return 'hren_vam';  

    }

 

Edited by seolink
Link to post
Share on other sites

Где-то я такое уже видел

 

Да снести его к чертям..

И намылить морду разработчику..

  • +1 1
Link to post
Share on other sites

Спасибо за коментарий.

 

Если я его снесу то не будет работать групировка в категории. Пол года выбивал нормальной реализации а зделали вот это. Я не програмист но все же со временем понял что это жесть.

Смысл групировки в следующем:

В категории в блоке товара Ставится главная картинка (товар) и миниатюры. Миниатюры и главный товар создаются на основании количества и статуса вкл (Розетка такое использует)

.

 

Тоесть если я его снесу то при добавлении товаров новых на сайт и внесения в поле групировки начало названия товара . В БД не произойдет изменений и не выберется главный и второстепенный товар (миниатюра)

 

:(

 

Может есть решение которое это все оптимизирует?

 

Пока додумался только "закоментировать" до того времени пока не понадобится обновить данные групировки ...

 

А есть ли вариант автозапуска этого кода раз в 2 дня?

Edited by seolink
Link to post
Share on other sites

Т.е. это по сути - серия товаров

 

1. Зачем признак группировки в product_description

2. Такой запрос надо делать на стороне админки, а не каждый раз на фронте

3. Нужно задавать главную любой товар, а не первый .. хотя это уже не важно

 

Link to post
Share on other sites

такое было закоментировано

/*               if ($query0->row['group_status'] != 1) {

                 $this->db->query("UPDATE  `" . DB_PREFIX . "product_description` SET  `group_status` =  '0' WHERE  group_stage =  '" . $group_st['group_stage'] . "' && group_status =  '1'");

                 $this->db->query("UPDATE  `" . DB_PREFIX . "product_description` SET  `group_status` =  '1' WHERE  `product_id` = ' " . $query0->row['product_id'] . "'");

                 $max_quant = $query0->row['product_id'];

                 return 'ura'; 
             }  */

Главным товаром может быть только тот, который включен и имеет больше всего в наличии, хотя если даже будет любой больше 0 подойдет. Те которые с количеством 0 должны быть последнимим в миниатюре, хотя тоже не критично, но желательно.

 

Может подскажете, как его вынести в Админку?

Edited by seolink
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By buslikdrev
      Для всех версий opencart делаю всё тоже самое, что и здесь.
       
      +Никаких копирайтов на вашем сайте со стороны клиентской части.
       
      +Установка и настройка модулей:
      модуль кэширования генерация webp изображений (если сервер поддерживает  
      Оптимизация отклика сервера и скорости генерации сервером страниц (отдаваемый HTML) не входит в данную услугу. По оптимизации серверной части обратитесь к @snastik.
       
      https://developers.google.com/speed/pagespeed/insights/?hl=RU&url=https%3A%2F%2Fdemo2.buslikdrev.by%2Findex.php%3Froute%3Dproduct%2Fcategory%26path%3D110_118%26limit%3D100&path=110_118&limit=100

      УСЛОВИЯ СОГЛАШЕНИЯ
      На вашем сайте не должно быть ошибок в php и js коде (устраняются за отдельную плату);
      Отклик сервера и обработка php кода должно отрабатывать не дольше 0.8 секунды (за плохой отклик сервера Гугл снимает 15-20 баллов, а значит гарантировать не могу оценку 90 без кэша);
      После сдачи работы претензии и вопросы не предъявляются исполнителю;
      Если результат оценки не будет достигнут 80+ на всех страницах (имеющий шаблон и количество товара не больше 100шт.), будут возвращены деньги без комиссии данной площадки (-30%) и восстановлен сайт в исходное состояние (по желанию клиента).
    • By buslikdrev
      5000
      Доступ к обновлениям: 500.00 руб за день
      Скачать/Купить дополнение


      Оптимизация для максимальной оценки PageSpeed от Google
      Для всех версий opencart делаю всё тоже самое, что и здесь.
       
      +Никаких копирайтов на вашем сайте со стороны клиентской части.
       
      +Установка и настройка модулей:
      модуль кэширования генерация webp изображений (если сервер поддерживает  
      Оптимизация отклика сервера и скорости генерации сервером страниц (отдаваемый HTML) не входит в данную услугу. По оптимизации серверной части обратитесь к @snastik.
       
      https://developers.google.com/speed/pagespeed/insights/?hl=RU&url=https%3A%2F%2Fdemo2.buslikdrev.by%2Findex.php%3Froute%3Dproduct%2Fcategory%26path%3D110_118%26limit%3D100&path=110_118&limit=100

      УСЛОВИЯ СОГЛАШЕНИЯ
      На вашем сайте не должно быть ошибок в php и js коде (устраняются за отдельную плату);
      Отклик сервера и обработка php кода должно отрабатывать не дольше 0.8 секунды (за плохой отклик сервера Гугл снимает 15-20 баллов, а значит гарантировать не могу оценку 90 без кэша);
      После сдачи работы претензии и вопросы не предъявляются исполнителю;
      Если результат оценки не будет достигнут 80+ на всех страницах (имеющий шаблон и количество товара не больше 100шт.), будут возвращены деньги без комиссии данной площадки (-30%) и восстановлен сайт в исходное состояние (по желанию клиента).
      Добавил buslikdrev Добавлено 27.04.2020 Категория Услуги  
    • By Seriusis
      Модуль решает проблему долгой загрузки iframe с youtube и увеличивает page speed. Улучшает визуальную часть и дает возможность катомизации: отображение видео в popup, установка своих превью на видео, установка произвольной иконки "play",
       
      Все вставки iframe с видео на вашем сайте перед выводом на страницу будут автоматически заменены на превью видео в виде изображений, которые подтягиваются с img.youtube.com/vi.
       
      ЗАЧЕМ
      Все знают, что iframe с видео очень сильно загружают страницу и уменьшают скорость загрузки сайта. Особенно это ощутимо (и даже визуально видно), если на странице несолько видео (каждый iframe это доп. запросы и ресурсы).
       
       

       
      ССЫЛКИ НА ДЕМО
      6 видео - разница 30-50%
      Модуль выключен:
      https://oc23.likedev.pro/6-video?disable-video-optim
      и page speed 49/33 -  https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F6-video%3Fdisable-video-optim&tab=mobile 
      Модуль включен  
      https://oc23.likedev.pro/6-video
      и page speed 92/75 -  https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F6-video 
      Страница та же, только в первом случае добавлен параметр ?disable-video-optim , чтобы модуль не срабатывал и можно было увидеть разницу. 
       
      1 видео - разница 10-30%
      И даже с 1 видео показатель достаточно проседает, особенно для мобильных устройств
      Модуль выключен:
      https://oc23.likedev.pro/1-video?disable-video-optim 
      и page speed 88/51 - https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F1-video%3Fdisable-video-optim&tab=desktop
      Модуль вкючен:
      https://oc23.likedev.pro/1-video
      и page speed 96/80 - https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F1-video&tab=mobile
       
      Админка https://oc23.likedev.pro/admin/   логин/пароль: demo/demo
       
       
      Кроме того визуально намного симпатичнее превью с иконкой, чем ютубовский iframe, да и возможность открытия видео в popup тоже очень полезна. + мы можем через css стили кастомизировать превью как нам угодно.
       
      ВОЗМОЖНОСТИ
      видео по клику на превью всплывающеее окно с видео по клику на превью произвольные изображение для превью выбор размера превью установка своей иконки на кнопку 'play' (font awesome, html) и ее стилизация через css возможно указать пути для исключения работы модуля поля для камтомных стилей и js  
       
      ОСОБЕННОСТИ
      будет работать на всех шаблонах максимально легкий модуль без зависимостей (всего пару строк css и ванильного js, никаких библиотек) будет работать даже без бутстрапа и jquery открытый код  
      ПРИМЕНЕНИЕ
      увеличение скорости загрузки и в результате лучший показатель page speed кастомизация внешнего вида видео превью вывод видео в popup позволить показывать ваши iframe даже на ограниченном пространстве подмена превью на свои позволит поставить подходящие вам изображения для видео и украсить сайт  
      ВАЖНО!  Предпочтительно использовать режим POPUP для лучшей совместимости с шаблонами, разметкой и адаптивности видео.
       
      УСТАНОВКА
       
      видео установки
      (только тут фикс не нужен, остальное - так же)
       
      Через установщик в админке загружаете архив модуля ocmod для своей версии опенкарт. 
      Для версий 2.x убедитесь, что у вас уже установлен модификатор localcopy.ocmod, если его нет - установите.
       
      PS. Для редактора CKeditor при вставке в режиме кода некоторых тегов, в т.ч и iframe, редактор их чистит.  В таком случае делаем фикс : 
      в admin\view\javascript\ckeditor\config.js
      после строки 
      config.resize_enabled = false;
      прописать 
      config.allowedContent = true;
       
       
       
      ЛИЦЕНЗИЯ 
      Лицензия выдается на один домен. Также при необходимости на тестовый поддомен. Для получения ключа обращайтесь в лс или на почту seriusisu@gmail.com, сразу указывайте данные о покупке: номер заказа и домен
      Теперь ключ будет выслан автоматически на почту покупателя сразу после вашего заказа. Если по какой-то причине письма нет - пишите на почту или в лс.
       
      Приветствую дельные предложения по развитию и расширению модуля.
       
      ПРОСЬБА УКАЗЫВАТЬ ДОМЕН СРАЗУ ПРИ ПОКУПКЕ
       
      Также смотрите модули:
      Accordion & Tabs & Steps, Faq & HowTo Microdata, any place & content
       

       
    • By Seriusis
      800 11
      Скачать/Купить дополнение


      YouTube lazy load & popup - оптимизация и кастомизация iframe, увеличение page speed
      Модуль решает проблему долгой загрузки iframe с youtube и увеличивает page speed. Улучшает визуальную часть и дает возможность катомизации: отображение видео в popup, установка своих превью на видео, установка произвольной иконки "play",
       
      Все вставки iframe с видео на вашем сайте перед выводом на страницу будут автоматически заменены на превью видео в виде изображений, которые подтягиваются с img.youtube.com/vi.
       
      ЗАЧЕМ
      Все знают, что iframe с видео очень сильно загружают страницу и уменьшают скорость загрузки сайта. Особенно это ощутимо (и даже визуально видно), если на странице несолько видео (каждый iframe это доп. запросы и ресурсы).
       
       

       
      ССЫЛКИ НА ДЕМО
      6 видео - разница 30-50%
      Модуль выключен:
      https://oc23.likedev.pro/6-video?disable-video-optim
      и page speed 49/33 -  https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F6-video%3Fdisable-video-optim&tab=mobile 
      Модуль включен  
      https://oc23.likedev.pro/6-video
      и page speed 92/75 -  https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F6-video 
      Страница та же, только в первом случае добавлен параметр ?disable-video-optim , чтобы модуль не срабатывал и можно было увидеть разницу. 
       
      1 видео - разница 10-30%
      И даже с 1 видео показатель достаточно проседает, особенно для мобильных устройств
      Модуль выключен:
      https://oc23.likedev.pro/1-video?disable-video-optim 
      и page speed 88/51 - https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F1-video%3Fdisable-video-optim&tab=desktop
      Модуль вкючен:
      https://oc23.likedev.pro/1-video
      и page speed 96/80 - https://developers.google.com/speed/pagespeed/insights/?hl=uk&url=https%3A%2F%2Foc23.likedev.pro%2F1-video&tab=mobile
       
      Админка https://oc23.likedev.pro/admin/   логин/пароль: demo/demo
       
       
      Кроме того визуально намного симпатичнее превью с иконкой, чем ютубовский iframe, да и возможность открытия видео в popup тоже очень полезна. + мы можем через css стили кастомизировать превью как нам угодно.
       
      ВОЗМОЖНОСТИ
      видео по клику на превью всплывающеее окно с видео по клику на превью произвольные изображение для превью выбор размера превью установка своей иконки на кнопку 'play' (font awesome, html) и ее стилизация через css возможно указать пути для исключения работы модуля поля для камтомных стилей и js  
       
      ОСОБЕННОСТИ
      будет работать на всех шаблонах максимально легкий модуль без зависимостей (всего пару строк css и ванильного js, никаких библиотек) будет работать даже без бутстрапа и jquery открытый код  
      ПРИМЕНЕНИЕ
      увеличение скорости загрузки и в результате лучший показатель page speed кастомизация внешнего вида видео превью вывод видео в popup позволить показывать ваши iframe даже на ограниченном пространстве подмена превью на свои позволит поставить подходящие вам изображения для видео и украсить сайт  
      ВАЖНО!  Предпочтительно использовать режим POPUP для лучшей совместимости с шаблонами, разметкой и адаптивности видео.
       
      УСТАНОВКА
       
      видео установки
      (только тут фикс не нужен, остальное - так же)
       
      Через установщик в админке загружаете архив модуля ocmod для своей версии опенкарт. 
      Для версий 2.x убедитесь, что у вас уже установлен модификатор localcopy.ocmod, если его нет - установите.
       
       
      ЛИЦЕНЗИЯ 
      Лицензия выдается на один домен. Также при необходимости на тестовый поддомен. Для получения ключа обращайтесь в лс или на почту seriusisu@gmail.com, сразу указывайте данные о покупке: номер заказа и домен
      Теперь ключ будет выслан автоматически на почту покупателя сразу после вашего заказа. Если по какой-то причине письма нет - пишите на почту или в лс.
       
      Приветствую дельные предложения по развитию и расширению модуля.
       
      ПРОСЬБА УКАЗЫВАТЬ ДОМЕН СРАЗУ ПРИ ПОКУПКЕ
       
      Также смотрите модули:
      Accordion & Tabs & Steps, Faq & HowTo Microdata, any place & content
       

       
      Добавил Seriusis Добавлено 12.11.2020 Категория Модули Системные требования Метод активации По запросу в ЛС
      По запросу на почту Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
    • By buslikdrev
      Скачать/Купить дополнение


      Буслік Кэш / Buslik Cache Lite
      ИНФОРМАЦИЯ
      Название модуля: Буслік Кэш - "Buslik Cache"
      Версия модуля: 1.0
      Тип лицензии: Lite (Liteware, linkware, beerware, muffinware) - пробная версия (упрощённая)
      Тип установки: ocmod
      Язык: Беларуская мова, English, Русский язык, Українська мова
      Дата создания: 02.10.2019
      Был протестирован на: OpenCart.pro 2.1.0.2.2 и 2.3.0.2.6, OpenCart-"Русская сборка" 2.1.0.2 (rs1), 2.3.0.2 (rs6) и 3.0.2.0 (rs3), ocStore 2.1.0.2.1 и 2.3.0.2.3 - шаблон (default)
      Название архива: Buslik Cache v1.0 Lite OpenCart 2.X-3.X.zip
       
      ПЛАТНАЯ ВЕРСИЯ ЗДЕСЬ
       
      ОПИСАНИЕ
      Модуль предназначен для уменьшения нагрузки на вашу базу данных и сайта в целом тем, что создаёт файл готовой страницы и после каждый раз отдаёт её пользователю. Также поднимает оценку Google PageSpeed.
      Если у вас на сайте много метриков или шаблоны от индусов, то скорее модуль вам не поможет, и нужно нанимать специалиста или менять шаблон на эти.
       

      ВНИМАНИЕ!
      Оригинальные файлы магазина не заменяет!
       

       
      УСЛОВИЯ СОГЛАШЕНИЯ
      - Beta и Lite версии устанавливаете на свой страх и риск - бэкап базы данных (далее - БД) обязателен;
      - Модуль (модификатор, дополнение, расширение, приложение) (далее - Модуль) можно устанавливать на неограниченное количество доменов;
      - Редактировать код можно под нужды любого магазина;
      - Распространение модуля разрешено с сохранением ссылок автора и исходного кода;
      - Техническая поддержка (далее - ТП) не осуществляется;
      - Адаптация модуля под другую версию Опенкарта, нестандартный шаблон и сторонние модули - платная;
      - Автор не несёт ответственности за потерю или находку дохода пользователя из-за работы модуля;
      - Автор модуля оставляет за собой право в любое время внести изменение в настоящее условие, описание и исходный код модуля;
      Добавил buslikdrev Добавлено 10.05.2020 Категория Кэширование, сжатие, ускорение Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.