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]   

> Без описания
SunChase
Отправлено: 05 Октября, 2011 - 17:09:07
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Июль 2010  


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




Доброго времени суток. Подскажите как вывести из таблицы бд данные типа:
#id year
1 2007
2 2007
3 2007
4 2008
5 2008


в такой форме:

#year: id, тоесть:
2007: 1,2,3
2008: 4,5
 
 Top
LIME
Отправлено: 05 Октября, 2011 - 17:13:31
Post Id


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


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


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




.

(Отредактировано автором: 05 Октября, 2011 - 17:14:28)

 
 Top
Мелкий Супермодератор
Отправлено: 05 Октября, 2011 - 17:26:36
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `year`, group_concat(`id`) AS `ids` FROM `tbl` GROUP BY `year`


-----
PostgreSQL DBA
 
 Top
SunChase
Отправлено: 05 Октября, 2011 - 17:35:28
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Июль 2010  


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




Мелкий пишет:
GROUP BY `year`


я так тоже сначала подумал, вот только GROUP BY разве не выдаёт только по одной записи из каждой сформированной группы?(пример)
 
 Top
Мелкий Супермодератор
Отправлено: 05 Октября, 2011 - 17:53:53
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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






-----
PostgreSQL DBA
 
 Top
SunChase
Отправлено: 05 Октября, 2011 - 18:17:00
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Июль 2010  


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




Спасибо. Почти то, что нужно. Уточню задачку:

Есть список групп факультета, поле 'year' которого содержит год выпуска. Каждая группа факультета содержит собственную страницу, переход на которую осуществляется по id'шнику.

Задача заключается в формировании html-таблицы, где каждая запись является ссылкой на страницу группы. Группирование производится по полю 'year', и его же нужно отметить в самой таблице. То есть, получить следующее:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Год 2007:
  3. <a href="URL к странице группы">Кодовое название группы</a>
  4. .........
  5. ........
  6. Год 2008:
  7. <a href="URL к странице группы">Кодовое название группы</a>
 
 Top
Мелкий Супермодератор
Отправлено: 05 Октября, 2011 - 19:00:46
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Тогда удобнее будет запросить не группированный список, а только отсортированный по году. И уже при выводе смотреть - если в этой строке год не тот, что в предыдущей - то вставить разделитель.


-----
PostgreSQL DBA
 
 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