Forum Webscript.Ru

Программирование => PHP => Тема начата: xax от 22 Декабря 2004, 19:59:04

Название: Сортировка по дате
Отправлено: xax от 22 Декабря 2004, 19:59:04
Как отсортировать по дате элементы вида:
$a=2 декабря 2004
$b=4 июня 2004
$c=26 сентября 1998
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 22 Декабря 2004, 23:50:40
привести к нормальному формату и отсортировать
Название: Сортировка по дате
Отправлено: xax от 23 Декабря 2004, 01:12:58
RomikChef Это я понимаю, но как быть если много таких операторов со значениями даты, то каждую из них разюивать в массив потом переставлять это невозможно, как тут быть?
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 02:56:12
Цитировать
xax:
каждую из них разюивать в массив потом переставлять это невозможно

нету ножек - нет и варенья
Название: Сортировка по дате
Отправлено: for_i_0 от 23 Декабря 2004, 13:21:22
Цитировать
xax:
операторов со значениями даты


интересно, но операторов я еще не заметил.

Это что все в ручную набирается ?
Если так то придется как сказал RomikChef.

далее приведу свой алгоритм

1. выбираешь все из поля содержащую даты.
2. В теле цикла разбиваешь массив и как тебе угодно меняешь  строчные буквы на цифры(из известных тебе способов),тем самым приводя данные в формат даты МуSQL т.е. гггг-мм-дд.
3. Записывешь нормальный формат в поле дата.
4. Сортируешь.

RomikChef
Если где то ошибся прошу поправить, так как выше перечисленное не пробывал осуществлять на практике.
Название: Сортировка по дате
Отправлено: chakra от 23 Декабря 2004, 13:50:44
Цитировать
for_i_0:
2. В теле цикла разбиваешь массив и как тебе угодно меняешь строчные буквы на цифры(из известных тебе способов),тем самым приводя данные в формат двты МуSQL т.е. гггг-мм-дд.
3. Записывешь нормальный формат в поле дата.
4. Сортируешь.


Я обычно привожу в тот формат (а чаще всего просто пишу гггг-мм-дд) и делаю это стрингом, а не датой. Тогда MySQL сортирует без проблем.
Название: Сортировка по дате
Отправлено: commander от 23 Декабря 2004, 13:59:56
for_i_0
chakra
xax
localtime...
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 15:28:17
Цитировать
chakra:
и делаю это стрингом, а не датой. Тогда MySQL сортирует без проблем.

можно поподробнее эту глубокую мысль развить? я не очень уловил насчет стрингов.
Название: Сортировка по дате
Отправлено: chakra от 23 Декабря 2004, 15:50:41
варчар...

На яве переписалась, сорри. Дальше, ведь, не надо объяснять?
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 15:53:39
надо-надо!
вот это как раз и надо объяснить.
про проблемы с сортировкой и хранение даты в поле типа варчар.
Название: Сортировка по дате
Отправлено: chakra от 23 Декабря 2004, 16:01:24
Может я что-то не поняла, но в базе у меня поле в таблице

my_date varchar (10)

в него пишу всегда дату в формате 2004.12.01

order by my_date

прекрасно все сортируется в нужном порядке
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 16:06:07
То есть, ты считаешь, что все многообразие форматов даты (http://dev.mysql.com/doc/mysql/ru/Date_and_time_types.html) команда mysql придумала исключительно для собственного развлечения?
А манипуляции над датами (разницу в днях, сложение-вычитание, сравнение и так далее - в общем, все то, что прекрасно делается взапросах (http://dev.mysql.com/doc/mysql/ru/Date_calculations.html) с помощью многочисленныхфункций (http://dev.mysql.com/doc/mysql/ru/Date_and_time_functions.html)) проще делать на коленке в пхп скрипте?
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 16:08:29
Ты ошибаешься.
В базе есть прекрасные встроенные типы полей, специально придуманные для даты. И именно ими надо пользоваться.
Начиная с того, что стандартное поле занимает меньше места и заканчивая тем, что вчисления, сравнения и группировку можно производить прямо в запросе - для чего, собственно, база и придумана.
Название: Сортировка по дате
Отправлено: chakra от 23 Декабря 2004, 16:14:08
RomikChef, ошибаюсь. Я знаю, что мой способ далек от того, как надо программировать, используя все возможности языка. Просто у меня личная нелюбовь к типу даты. Посему так и пишу. Я же не утверждаю, что мой способ самый лучший :) Просто привела пример, как вариант сортировки.
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 23 Декабря 2004, 17:23:26
Хех.
А зачем приводить неправильное ошибочное мнение как пример?
Если это твои личные заморочки, и ты понимаешь, что это ошибка - зачем другим-то советовать?
И почему ты вообще решила, что речь идет о БД?
Название: Сортировка по дате
Отправлено: commander от 23 Декабря 2004, 18:44:23
Цитировать
Может я что-то не поняла, но в базе у меня поле в таблице

my_date varchar (10)

в него пишу всегда дату в формате 2004.12.01

order by my_date

прекрасно все сортируется в нужном порядке

 :super:
РЕСПЕКТ!!!! это надо в ЮМОР!!! :):):)
Название: Сортировка по дате
Отправлено: xax от 24 Декабря 2004, 01:35:15
Блин, вы в mysql полезли, я вообще с этим пока не дружу, у меня база из текстового файла состоит, я хотел услышать лагоритмы, пока услышал только один, ром, если можешь распиши по подробнее алгоритм решения этой задачи
Прошу привести ещё примеры решения и ещё нельзя - ли перевести значения операторов в формат даты и сортировать уже так
Название: Сортировка по дате
Отправлено: commander от 24 Декабря 2004, 10:31:43
xax
повторяю !!! localtime !!! тебе поможет...
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 24 Декабря 2004, 12:23:40
commander
а чуть более развернуто тебя не затруднит пояснить свой ответ?
Название: Сортировка по дате
Отправлено: xax от 26 Декабря 2004, 11:32:34
commander Поддерживаю ромика
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 26 Декабря 2004, 13:07:35
xax
ты особо не надейся.
врядли этот девелопер сможет тебе чем-то помочь
Название: Сортировка по дате
Отправлено: xax от 28 Декабря 2004, 00:29:38
RomikChef объясни ты свой метод по - подробнее
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 28 Декабря 2004, 00:56:17
так тебе его объяснили уже
for_i_0 , например.
да и сам ты, вроде бы писал, что понимаешь - "разюзивать в массив"
Название: Сортировка по дате
Отправлено: xax от 28 Декабря 2004, 17:58:43
RomikChef А как быть если разюзивать надо 100 штук?
Название: Сортировка по дате
Отправлено: Меняздесьдавнонет от 28 Декабря 2004, 18:10:55
точно так же, как и одну.