Вывод элементов списка по группам...

decoder

Новичок
Вывод элементов списка по группам...

В базе хранятся записи. У всех записей есть поле aka `type` и есть какие-то одинаковые значение (из-за того, что относятся к одному типу).
Требуется вывести список, группируя элементы по полю `type` и при этом выводить одинаковые значения.

Упрощенно структура таблицы выглядит так:

id int,
type varchar(10),
expdate int(10)
title varchar(10)

type - тип
expdate - срок годности
title - название элемента списка

Допустим, вот такое должно получится...

- группа "Еда", срок годности: 7 дней
-- рыба
-- торт
-- молоко
- группа "Компьютеры", срок годности: 1 год
-- IBM
-- DELL
-- ...
и так далее...

Единственное, что пришло в голову мне, это:
1) выборка из базы (ORDER BY `type`)
2) инициируем переменную текущего типа ($curType)
-- начало цикла --
3) проверяем, если $curType пуста, то вписываем $row['type'] (допустим в нее мы выбираем строку) и выводим данные о группе;
если $curType отлична от $row['type'], но не пуста, то "закрываем" группу и начинаем новую (вписываем $row['type'] в $curType и выводим данные о группе)
4) выводим элемент списка
-- конец цикла --

Примерно так я сейчас решаю эту задачу... Мне интересно, есть ли более ..мм.. "нормальные" методы??
Этот метод мне не нравится тем, что приходится создавать тучу темплейтов: "бокс" группы, начало группы, конец группы, элемент списка. Мне же интересен вариант, чтобы их было только два: "бокс" группы и элемент списка.

(На сайте искал, в гугле искал. Нужного не нашел. Возможно, немного не в тот форум пишу... Но направил сюда, так как решение вполне может быть связано с "правильными" запросами к мускулю...)

Спасибо.
 

Фанат

oncle terrible
Команда форума
Чтобы хотеть "правильный запрос", надо хотеть получаемый с его помощью набор данных.
И какой же набор данных ты хочешь получить?

С шаблонами тот же самый вопрос.
Ну это веть ТЕБЕ нужна структура данных, которая позволяет сделать нужный шаблон! при том, что никто, кроме тебя, особенностей твоего шаблонизатора не знает. при том, что проблема именно в формате входящих данных. Если ты знаешь, как организовать данные для "удобного шаблона", то почему непреобразуешь получаемые из БД данные?
А если не знаешь, то какой смысл У НАС-ТО спрашивать?
 
Сверху