Может она и простая, для тех кто знает, но я решить проблемку не могу...
Есть таблица (многие поля я вырезал для удобства понимания):
SQL |
CREATE TABLE `tab` ( `id` int(11) NOT NULL auto_increment, `object_id` int(11) NOT NULL COMMENT 'ID объекта', `name_short` varchar(5) default NULL COMMENT 'Условное обозначение планировки', `floor` int(2) default NULL COMMENT 'Этаж', `price` decimal(10,3) default NULL COMMENT 'Цена', PRIMARY KEY (`id`), KEY `object_id` (`object_id`) ) ENGINE=InnoDB AUTO_INCREMENT=4138 DEFAULT CHARSET=cp1251; |
Пример данных:
PHP |
id object_id name_short floor price 3888 2 A 1 0 3892 2 A 5 0 3893 2 A 6 0 3895 2 A 8 0 3896 2 A 9 0 3897 2 A1 1 0 3898 2 A1 2 0 3900 2 A1 4 0 3912 2 A2 5 0 3913 2 A2 7 0 3914 2 A2 8 0 3915 2 A3 1 0 3916 2 A3 2 0 3926 2 B 3 0 3927 2 B 4 0 3928 2 B 5 0 3929 2 B 6 & |
Требуется сделать запрос типа:
SQL |
SELECT * FROM tab GROUP BY `name_short` |
Только тогда покажется 1 значение поля "Этаж", а мне нужно все этажи через запятую! Т.е.
PHP |
2 A 1,5,6,8,9 2 A1 1,2,4 2 A2 5,7,8 2 A3 1,2 2 B 3,4,5,< |
Возможно запросом и не сделать, нужно процедуры использовать... Есть варианты?
можно джойнить таблицу, только как получить данные из нее в строку через запятую...
Спустя 2 минуты, 54 секунды (15.12.2008 - 12:00) Sylex написал(а):
кстати, какие-то глюки при отображении - < я знак не ставил в конце PHP кода и амперсанд выше тоже не ставил..
В HTML-коде отсутствует табуляция.
Спустя 3 часа, 34 минуты, 44 секунды (15.12.2008 - 15:34) Sylex написал(а):
проблема решена с использованием функции GROUP_CONCAT:
SQL |
SELECT id,`name_short`,GROUP_CONCAT(`floor`) FROM object_price WHERE object_id = 2 GROUP BY `name_short` |
Замечательная функция
Спустя 6 часов, 24 минуты, 36 секунд (15.12.2008 - 21:59) kirik написал(а):
Sylex, тоже была подобная задача, но я обошелся циклом =) спасибо за решение!
Спустя 4 часа, 26 минут, 30 секунд (16.12.2008 - 02:26) FatCat написал(а):
Цитата (Sylex @ 15.12.2008 - 12:00) |
какие-то глюки при отображении - < я знак не ставил в конце PHP кода и амперсанд выше тоже не ставил.. |
Кнопка

корректно работает только с кодом пхп, помещенным между тегами <% код %>
Для мишматча кодов лучше пользоваться кнопкой

- она не делает подсветки синтаксиса, и потому не так капризна.
Спустя 4 часа, 35 минут, 8 секунд (16.12.2008 - 07:01) Sylex написал(а):
просто в [ code ] нет табуляции... код некрасиво показывается
_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.