Oughtem |
|
---|---|
Ещё со времён седа движок сортирует массив цифр в следующем порядке: 1,11,12,13,2,21,22,3,31,32 на неохроме поднимался этот вопрос, но поправлено не было. Есть этому какое-то лечение? Если нет, то предлагаю внести в список задач для новой версии. |
Wadik |
|
---|---|
Согласен! Всегда напрягало это |
Dayver |
|
---|---|
Чем вариант с 01,02,03,...,09,10.11,... не устраивает? Pavlo Tkachenko aka Dayver
|
Wadik |
|
---|---|
#34421 Dayver: Это шаманство. Если структура очень ветвистая и большая, то нужно додумывать 01 или 001 или 0001. |
Moool13 |
|
---|---|
Здесь этот вопрос тоже поднимался |
Oughtem |
|
---|---|
#34421 Dayver: Тем, что вопрос касается не только структуры сайта. Любой плагин, любой функцонал, который использует сортировку выводит не правильно. А писать, допустим, в характеристиках товарав: 050м (вместо 50м), 100м, 200м чтобы сортировало правильно - это действительно шаманство.
|
Moool13 |
|
---|---|
Вот на счет этого - соглашусь! |
Trustmaster |
|
---|---|
#34424 Oughtem:
Для численной сортировки создавайте числовые поля. Их MySQL будет сортировать как числа. Сортировать выборку из БД на стороне PHP - вот это было бы шаманство.
May the Source be with you!
|
Fox |
|
---|---|
Trustmaster: А исправить это можно чтоб пути категорий шли попорядку 1, 2, 3, а не 1, 11, 2, 21, и т д??? ХаЧу ЧПУ для форума!!! ХаЧу ДаКуменцию к ДвИжКу!!! ХаЧу АпиСания TPL ТаГов!??
|
esclkm |
|
---|---|
ребят вы приводите коды ска строки: 100м 200м и тд я у себя на сайте юзаю в качестве путей только то что мне понятно anat.golov, hir.uro.mkb и тд но вы хотите лишить меня этого? а смысл? ди а прямо со стратью хотите числа - вопрос зачем? littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
McDuck |
|
---|---|
Численная сортировка в путях структуры невозможна для числа уровней больше двух, поскольку не существует чисел вида 1.2.3.4 Меня больше озадачивает, что значения пути не проверяются на уникальность |
Oughtem |
|
---|---|
#34427 Trustmaster: это не универсальное решение. Что делать с полями смешанного типа? |
Trustmaster |
|
---|---|
Не путайте божий дар с яичницей. Во-первых, пути категорий - это отдельно взятый случай, живущий по своим правилам. Как заметил esclkm, в них допускаются не только числа, но и буквы. Как заметил McDuck, численная сортировка для них сильно затруднена. Во-вторых, не существует "универсальное решение". Иначе создатели СУБД давно бы сделали один единственный тип данных вместо всех этих VARCHAR, INT, FLOAT и т.д. Вы просите написать некую волшебную функцию, которая будет на лету распознавать тип данных (а они ещё и разные, оказывается, например "0, 3.75, капуста, 4, 6км, морковь, 300, 999.999") и упорядочивать их заново. Но имейте в виду, что даже если вы просто немного "ошиблись" и храните целочисленные данные в текстовом поле, то MySQL из-за этого тратит на выборки и сортировку по этому полю ощутимо больше времени, потому что операция сравнения строк медленнее, чем сравнения чисел. Если вы хотите сделать, например, поле "Расстояние до пляжа" со значениями "рядом, 50м, 100м, 150м, 200м, 500м, 1км, 2км, 3км", а затем сделать аккуратную сортировку по нему, то правильный выход - это хранить данные без единиц измерения. Скажем, "0, 50, 100, 150, 200, 500, 1000, 2000, 3000", а буковку "м" выводить в шаблоне. Пользователям будет удобнее, если вы сделаете небольшой плагин, который будет на лету переводить м в км и обратно (при вводе или выводе). Но не просите сделать это базу данных. May the Source be with you!
|
Moool13 |
|
---|---|
Причем тут юзеры и структура? |
Trustmaster |
|
---|---|
Я же сказал, структура - разговор отдельный. Oughtem говорит о том, что надо вообще везде сортировку менять. В структуре если хотите целочисленную сортировку, то давайте сначала откажемся от поддержки всего кроме чисел в путях. Все готовы? May the Source be with you!
|