Группирование записей

Garret

Кто здесь?
Группирование записей

Добрый день.

Такой вопрос: как сгруппировать записи по имени?

Например. Есть у нас таблица:

- Имя
- Возраст
- Кол-во

Мне надо вывести записи сгруппированые по имени.

Содержимое таблицы:

Anton;12;3
Vadim;32;6
Anton;11;5

Должен быть такой вывод:
Anton
12 - 3
11 - 5
Vadim
32 - 6

-~{}~ 05.12.06 17:03:

Что то GROUP BY не дает таких результатов.
 

voituk

прозревший
Результат запроса - это двухмерная таблица, где по горизонтали находятся поля, я по вертикали - строки.

Как ты себе представляешь такую таблицу в твоем случае?
 

hermit_refined

Отшельник
база данных возвращает кортежи, а не данные подозрительной структуры, которую даже непонятно как потом разбирать.

вам надо выбрать все строки и группировать их средствами php.
 

Garret

Кто здесь?
Хм... блин, помнится когда то делал один скриптик, так там запрос хорошо группировал.

Например: SELECT * FROM `table` GROUP BY name
И результат типа такого:
name - age - num
Anton 12 3
-------- 11 5
Vadim 32 6

-~{}~ 06.12.06 15:40:

Что никто?
 

A-Lex[FM]

Web/Highload/DataScience
а как на счёт
SELECT t.* FROM table t ORDER BY t.name

а в пхп разруливай по именам. мускул не умеет хранить неплоские представления, как лотус.

а групировать можно так:

while ($row = mysql_fetch_assoc($result)) {
$new_array[$row['name']][count($new_array[$row['name']])] = $row['age'];
}

в итоге получишь массив типа:
[Anton]
[1] = 12
[2] = 11
[Vadim]
[1] = 32

И так далее
 

A-Lex[FM]

Web/Highload/DataScience
ну чуваку нужно простое решение, вот оно. Главное работать будет :)
 

Wicked

Новичок
ты это называешь простым решением? Первое, что приходит в голову - не всегда просто. Насчет "работать будет" - сложный код легче запороть.
 

hermit_refined

Отшельник
A-Lex[FM]
+ к вышесказанному - ORDER BY t.name зачем?
чтобы не оставался ваш бред:
PHP:
$ret = array();
if ($result = mysql_query('SELECT * FROM table'))
{
    while ($row = mysql_fetch_assoc($result))
        $ret[$row['name']][] = $row;
}
-~{}~ 07.12.06 08:59:

Автор оригинала: nail
попробуйте GROUP_CONCAT
крутое решение. в базе будем шифровать, а потом в php расшифровывать.
 
Сверху