"Посетители сайта могут выбирать порядок сортировки" в MySQL Есть решение

Подскажите пожалуйста, в какой таблице в базе данных хранится состояние чекбокса "Посетители сайта могут выбирать порядок сортировки" из настроек категории? На сколько я понимаю, shop_category -> sort_products позволяет выбрать сортировку по умолчанию, но за сам чекбокс не отвечает.

4 ответа

  • 2
    DES Партнер-разработчик 8 ноября 2018 12:37 # Решение

    Таблица shop_category_params

    В ней создаётся запись:

    category_id - идентификатор категории

    name - enable_sorting

    value - 1

  • 2
    Евгений Химич 10 сентября 2019 14:23 #

    Подскажите пожалуйста, а каким именно запросом в бд сделать для всех категорий «Посетители сайта могут выбирать порядок сортировки» - галочка. 

  • 2
    Евгений Химич 11 сентября 2019 17:45 #

    В ручную делать не вариант, так как 25 000 категорий... ((

    • +1
      Евгений Пасканов Евгений Пасканов 12 сентября 2019 11:42 #

      Я использовал что-то вроде такого запроса:

      INSERT INTO `shop_category_params` (`category_id`, `name`, `value`) SELECT `id`, "enable_sorting", "1" FROM `shop_category`


      Лучше проверить на тестовой таблице

      • +1
        Denis - Denis - 12 сентября 2019 21:05 #

        Узнать бы поточнее.

        • +2
          replicant replicant 13 сентября 2019 09:29 #

          Запрос правильный рабочий, но есть один нюанс. Таблицу shop_category_params перед запросом надо очистить полностью, т.к. дублирующие ключи от уже имеющихся записей в этой таблице не дадут запросу успешно пройти.

          Очистить таблицу средствами phpmyadmin достаточно легко или вот таким запросом можно это сделать TRUNCATE `shop_category_params`

          Ничего криминального не случится, если даже что-то не получится с первого раза. Запросы не затрагивают жизненно важных таблиц.

          • +1
            Евгений Пасканов Евгений Пасканов 13 сентября 2019 09:48 #

            Но очищать эту таблицу нельзя! Там же другие параметры хранится могут. У меня, например, там лежат ссылки на картинки для категорий. 


            Только что проверил запрос для непустой таблицы - выполняется правильно. Здесь ключи не уникальные, поэтому ошибки не возникает.

            • +2
              replicant replicant 13 сентября 2019 10:06 #

              Да все верно. Что-то с утра я напутал да и phpadmin с толку сбил. Можно не очищать. Недостающие ключи добавятся нормально.

      • +1
        Евгений Химич Евгений Химич 16 сентября 2019 15:49 #

        Все работает и на тестовой и на рабочей версии.) Благодарю.

      • +1
        Игорь Игнатьев Игорь Игнатьев 16 сентября 2019 21:07 #

        У меня данный запрос не работает.

  • 1
    Denis - 13 сентября 2019 18:32 #

    Спасибо, запрос сработал. Правда какую-то ошибку выдало, но по факту вижу работает все. 

    Ответ MySQL: Документация

    <code>#1062 - Duplicate entry '337-enable_sorting' for key 'PRIMARY'</code>

    • +1
      replicant replicant 13 сентября 2019 19:45 #

      Это значит, что у 337 категории уже была включена сортировка. Я утром тоже на эту ошибку повелся. :)

      • +1
        Игорь Игнатьев Игорь Игнатьев 16 сентября 2019 21:11 #
        INSERT INTO `shop_category_params` (`category_id`, `name`, `value`) SELECT `id`, "enable_sorting", "1" FROM `shop_category` 

        Ответ MySQL: Документация

        <code>#1062 - Duplicate entry '1-enable_sorting' for key 'PRIMARY'</code>


        • +1
          Евгений Химич Евгений Химич 16 сентября 2019 21:44 #

          Попробуй запрос 

          REPLACE INTO `shop_category_params` (`category_id`, `name`, `value`) SELECT `id`, "enable_sorting", "1" FROM `shop_category`

      • +1
        Игорь Игнатьев Игорь Игнатьев 16 сентября 2019 21:12 #

        В категориях (галочка «Пользователи сайта....» не стоит во многих категориях... Кеш чистил толку нет...

    • +1
      Евгений Химич Евгений Химич 16 сентября 2019 21:45 #

      Этот запрос 

      REPLACE INTO `shop_category_params` (`category_id`, `name`, `value`) SELECT `id`, "enable_sorting", "1" FROM `shop_category`

      позволит избежать эту ошибку и выполнить все необходимые условия...

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите