- RU.PHP ------------------------------------------------------------- RU.PHP -
Msg : #4105 [593]
От : Aleksey Sosnovikov 2:5020/400 04 ноября 03, 20:37
Кому : Al Metelica 07 сентября 03, 00:05
Тема : Re: Многоуровневая сортировка
-------------------------------------------------------------------------------
From: "Aleksey Sosnovikov"
"Al Metelica" сообщил/сообщила в
новостях следующее: news:1067965037@p26.f20.n457.z2.ftn...
> Подскажите пожалуйста, как средствами MySQL и PHP осуществить
многоуровневую
> сортировку.
> Пример: Есть таблица с колонками - фильмы, год их выпуска, описание.
Hужно
> сделать чтобы они сортировались по году, а внутри одного года ещё и по
> названию.
Если работа происходит не через БД, то предлагаю такой вариант: использовать
функцию usort() а в пользовательской процедуре сравнения сделать следующее:
function cmp ($a, $b) {
$aa = $a{"year"}.$a{"descr"};
$bb = $b{"year"}.$b{"descr"};
if ($aa == $bb) return 0;
return ($aa < $bb) ? -1 : 1;
}
Таким образом первичным критерием сортировки будет год, а вторичным -
описание. Если нужно сортировать по убыванию года и по "возрастанию"
описания, то будет
$aa = (9999-$a{"year"}).$a{"descr"};
$bb = (9999-$b{"year"}).$b{"descr"};
// Aleksey Sosnovikov aka Salex, http://salex.pp.ru
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
При переходе по баннеру - скидка 25% на первый месяц обслуживания! При переходе по баннеру - скидка 25% на первый месяц обслуживания!