Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Группировка и сортировка в запросе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
lamozavrik
Отправлено: 30 Июля, 2012 - 12:46:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Всем доброго времени суток. Кто может подсказать как решить мою проблемку. Вообщем суть такова: Есть в базе данных, к примеру, 3 категории:
1. Ягоды
2. Овощи
3. Фрукты
в категориях есть продукты соответственно и их количество в кг:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 1. Ягоды
  2.    1. Арбуз - 52
  3.    2. Малина - 23
  4.    3. Вишня - 35
  5.  
  6. 2. Овощи
  7.    1. Картошка - 120
  8.    2. Капуста - 80
  9.    3. Буряк - 45
  10.  
  11. 3. Фрукты
  12.    1. Яблоки - 15
  13.    2. Груши - 12


Вообщем я написал селект, который делает следующую выборку:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Овощи    |    Картошка
  2. Овощи    |    Капуста
  3. Овощи    |    Буряк
  4. Фрукты   |   Яблоки
  5. Фрукты   |   Груши
  6. Ягоды     |   Арбуз
  7. Ягоды     |   Вишня
  8. Ягоды     |   Малина


То есть я в селекте задал ORDER BY название категории, вес DESC. Ка видно отсортировало по названию категорий, а по весу отсортировало в пределах самой категории. Если я сделаю ORDER BY название категории, вес ASC, то сортировка поменяется только в самой категории, а категории дальше будут отсортированы в алфавитном порядке. А как сделать так, что бы когда я указывал вес ASC или вес DESC, то менялся порядок категорий.
Заранее спасибо ))

(Отредактировано автором: 30 Июля, 2012 - 12:50:02)



-----
Ударим крепким сном по мукам совести!
 
 Top
Viper
Отправлено: 30 Июля, 2012 - 12:58:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




В подзапросе указали сортировку?
И вообще запрос ваш где?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
EuGen Администратор
Отправлено: 30 Июля, 2012 - 13:00:10
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Из вышенаписанного я предполагаю, что требуется сортировка по суммарному значению веса в каждой категории. Если это так, то подойдет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT cat_data.category, cat_data.name, cat_data.weight FROM (SELECT category, SUM(weight) AS total_weight FROM cat_data GROUP BY category ORDER BY total_weight DESC) AS internal_weight LEFT JOIN cat_data ON cat_data.category=internal_weight.category


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
lamozavrik
Отправлено: 30 Июля, 2012 - 13:02:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




EuGen, спасибо, как раз так и сделал ))) Все получилось )


-----
Ударим крепким сном по мукам совести!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB