Упорядочивание Числовых Значений

Здравствуйте. Обратил внимание, что числовые значения характеристик упорядочиваются только по первым слева цифрам. Возможно ли сделать так, чтобы использовалось математическое упорядочивание?

[attachment=11819:2016-10-31_14-07-00.jpg]

2016-10-31_14-07-00.jpg

Здравствуйте. Обратил внимание, что числовые значения характеристик упорядочиваются только по первым слева цифрам. Возможно ли сделать так, чтобы использовалось математическое упорядочивание?

2016-10-31_14-07-00.jpg

Вообще-то, насколько я понимаю, сортировка одет сначала по полю Поз. И если нужно свою сортировку, можно там указать нужный порядок. Так не подходит?

Вообще-то, насколько я понимаю, сортировка одет сначала по полю Поз. И если нужно свою сортировку, можно там указать нужный порядок. Так не подходит?

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

Предположу, что сортируется как текстовые строки...

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

app/functions/fn.catalog.php

Попробуйте заменить

$sorting = db_quote("?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

на

$sorting = db_quote("CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

app/functions/fn.catalog.php

Попробуйте заменить

$sorting = db_quote("?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

на

$sorting = db_quote("CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

Тут ещё одна загвоздка выходит. Если значения характеристики имеют тип Число, и эту характеристику использовать как фильтр, то на витрине в категориях появляется ползунок, начальное и конечное значения. Но, мне кажется, это актуально только для цены. Поэтому подскажите, пожалуйста, как сделать, чтобы для таких характеристик использовались в фильтрах галочки.

app/functions/fn.catalog.php

Попробуйте заменить

$sorting = db_quote("?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

на

$sorting = db_quote("CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

Метод работает и для чисел и для текста. Спасибо большое.

Тут ещё одна загвоздка выходит. Если значения характеристики имеют тип Число, и эту характеристику использовать как фильтр, то на витрине в категориях появляется ползунок, начальное и конечное значения. Но, мне кажется, это актуально только для цены. Поэтому подскажите, пожалуйста, как сделать, чтобы для таких характеристик использовались в фильтрах галочки.

Но можно ли реализовать вышеописанное?

Но можно ли реализовать вышеописанное?

Скорее всего. Но надо копать код фильтров

Скорее всего. Но надо копать код фильтров

А не подскажите, где и что именно копать.

app/functions/fn.catalog.php

Попробуйте заменить

$sorting = db_quote("?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

на

$sorting = db_quote("CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variants.position, ?:product_feature_variant_descriptions.variant");

Случайно заметил, что если прописаны позиции, то сортировка идет в непонятной последовательности.

[attachment=11827:2016-11-01_14-28-42.jpg]

2016-11-01_14-28-42.jpg

Случайно заметил, что если прописаны позиции, то сортировка идет в непонятной последовательности.

Сначала сортировка идет по значению в типе Число, потом по позиции, потом по имени

Видимо, строки в типа Число как-то так SQL интерпритирует

Сначала сортировка идет по значению в типе Число, потом по позиции, потом по имени

Видимо, строки в типа Число как-то так SQL интерпритирует

Разве невозможно сделать так, чтобы сортировка шла сначала по позиции, затем по значению характеристики со всеми правилами сортировки?

Разве невозможно сделать так, чтобы сортировка шла сначала по позиции, затем по значению характеристики со всеми правилами сортировки?

$sorting = db_quote("?:product_feature_variants.position, CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variant_descriptions.variant");
$sorting = db_quote("?:product_feature_variants.position, CAST(?:product_feature_variant_descriptions.variant as SIGNED INTEGER), ?:product_feature_variant_descriptions.variant");

Спасибо большое. То что нужно.

Здравствуйте.

В продолжение темы о числовых значениях. Возникла такая проблема. Есть характеристики с типом значений "Число". Но когда я просматриваю значения таких характеристик, в них есть и текстовые символы. Что самое интересное, когда я сам пытаюсь занести не числовое значение (ручным вводом, копированием), система мне не позволяет, оставляет только числа. Помогите, пожалуйста, разобраться, как тогда сохраняются не числовые значения в подобных характеристиках.

Здравствуйте.

В продолжение темы о числовых значениях. Возникла такая проблема. Есть характеристики с типом значений "Число". Но когда я просматриваю значения таких характеристик, в них есть и текстовые символы. Что самое интересное, когда я сам пытаюсь занести не числовое значение (ручным вводом, копированием), система мне не позволяет, оставляет только числа. Помогите, пожалуйста, разобраться, как тогда сохраняются не числовые значения в подобных характеристиках.

Может быть у этих характеристик используются параметры Префикс и Постфикс?

Может быть у этих характеристик используются параметры Префикс и Постфикс?

Проверил, эти поля пустые.

Проверил, эти поля пустые.

Проверка на соответствие типу происходит программно. Если данная характеристика - это значение типа число из списка вариантов, то в базу в это поле можно записать что угодно, пишется и берется берется из таблицы cscart_product_feature_variant_descriptions где это текстовое поле. Поэтому вывод: что либо вручную менялось (случайно/намеренно), либо какой сторонний аддон напроказил

Проверка на соответствие типу происходит программно. Если данная характеристика - это значение типа число из списка вариантов, то в базу в это поле можно записать что угодно, пишется и берется берется из таблицы cscart_product_feature_variant_descriptions где это текстовое поле. Поэтому вывод: что либо вручную менялось (случайно/намеренно), либо какой сторонний аддон напроказил

А как же можно это исправить, чтобы в числовые характеристике не числовые значения не записывались.