Показать полную графическую версию : [решено] Выборка данных из mysql и сортировка на php
dima1981
11-11-2008, 13:32
Например при размещении объяаления о товаре, автор указывает время до которого это объявление действительно, у меня это так две формы первая марка, вторая страна производитель и к ним есть три формы первая день, вторая месяц и третья год
выборка осуществляется по марке и по стране производителю
и вот хорошо бы потом когда данные полученны сортировать их по дате до которого действительно объявление т.е. например чтобы список начинался с тех объяалений, у которых время подходит вот, вот за ним идут те у которых побольше времени в запасе, скажите пожалуйста как это осуществить?
Заранее спасибо.
Допустим, таблица my_table такая:
[ id | mark | proizv | data ]
Пишем "SELECT * FROM `my_table` WHERE `mark`='Gnusmas' ORDER BY `data` ASC";
Выбираем все строки из таблицы my_table, где марка - Гнусмас и упорядочиваем по дате средствами СУБД. Вместо ASC можно написать DESC, тогда в обратном порядке будет упорядочиваться.
dima1981
11-11-2008, 14:20
по дате это понятно, только есть дата которая возникает от timestamp и есть дата которую заносят в таблицу из полей день, месяц, год сортировку надо по этим полям например переменные $d $m $g и потом при получении данных из базы сделать так чтобы они не по дате размещения сортировались, но по переменным $d $m $g и первыми выводились данные у которых $d $m $g самые меньшие значения, за ними те у которых они побольше чем у первых но меньше чем у третьих, за ними третьи у которых значение больше чем у вторых но меньше чем у четвертых и т.д.
Какая разница по какому полю сортировать?
Можно и так:
"SELECT * FROM `my_table` WHERE `mark`='Gnusmas' ORDER BY `g` ASC, `m` ASC, `d` ASC";
Сначала идёт сортировка по годам, если годы совпадают, то по месяцам. Если и месяцы совпадают, то по дням. По идее, здесь будет примерно такая последовательность:
[год | месяц | день ]
2008 | 08 | 02
2008 | 08 | 14
2008 | 09 | 05
2008 | 09 | 13
2008 | 12 | 30
2009 | 01 | 05
и т.д.
dima1981
11-11-2008, 15:06
Спасибо
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.