Здравствуйте, вывел в таблицу товаров в админке поле location, сдлелал по нему сортировку как у других полей, но сортировка происходит по алфавиту, а нужно сортировать по цифре. т.е. сортирует так: 1 2370 550 975 98 и.т.д. а нужно так: 1 98 550 975 2370 делал через модификатор код модификатора прилагаю смотрел по аналогии с ценой, разницы не нашел ocstore 2.3.
Я извиняюсь, а не могли бы вы пояснить чем вас sort_order не устраивает? Есть стандартное поле для ввода цифр, туда загоняете ваши числа и сортируете.
Разница в типе данных. Поле location имеет тип varchar (соответственно сортируется как строка, посимвольно), у price тип decimal (сортирует как число). 3 варианта: 1)использовать sort_order как предложили выше; 2)поменять тип данных location что бы там хранилось число а не строка; 3)привидение типов в запросе с сортировкой order by location * 1 asc (не рекомендую)
Пункт 3. Нужно учитывать, что если в ORDER BY используются какие-то операции, то не используются индексы. Как следствие, при большом кол-ве данных будет заметное снижение производительности. Пункт 2. После смены типа поля location в БД на числовое, в файлах моделей везде, где используется location придется менять $this->db->escape($data['location']) на (int)$data['location'] или (float)$data['location']. Пункт 1. Ничего делать не надо - просто заполнять поле sort_order и сортировать. Это оптимальный вариант, если нет ОСОБЫХ причин, по которым нужно использовать location.
всё почитал но не понял о каком поле sort_order идет речь http://prntscr.com/if9mvn сам input этого поля поменялна тип number так что буквы ввести не должны. После смены типа поля в БД фильтрует нормально. Спасибо. И если можно расскажите всё таки про sort_order, может еще где то пригодится.
sort_order - это название его в базе, а в админке оно называется "Порядок сортировки" и находится внизу страницы со скрина. И вообще, странно, что не первый год работая с ОК вы не знаете, что такое sort_order, который в ОК есть почти у всего, что выводится на витрину.
спаибо, просто мой вопрос был совсем о другом и в голове эти два "объекта" не связались вообще ни как. Бывает )