Здравствуйте! Вопрос такой. Может ли mysql возвращать многоуровневые массивы. Опишу на примере. Есть таблица с пользователями. В ячейке "права" лежат id прав по типу "1,2,5,8...". Хотелось бы путем сложного запроса получить многоуровневый массив, где в элементе "права" вместо номеров прав лежал бы вложенный ассоциативный массив из таблицы прав вроде: assoc{ 'id' => 3, 'name' => 'Вася', 'rights' => assoc{ 0{ 'id' => 1 'name' => 'Право на что-то...' } 1{ 'id' => 2 'name' => 'Право на что-то... другое' } } } Вот такая вот специфическая потребность. Заранее спасибо.
Все, понял. Большое спасибо, будем это реализовывать допотопно. Т.е. foreach по всем записям и дописывать по вложенному массиву.
А если использовать PostgreSQL (извините, что не в теме, так как это продолжение начатого)? Возможно решить такую задачу? pg_fetch_assoc тоже одноуровневый?
так, так, про Oracle знаю, спасибо. Вот применительно к PostgreSQL как это возможно реализовать? На php.
вообще, можно создать оч сложный запрос с использованием псевдонимов, и на выходе получить длинный одноуровневый массив, с определенными правилами именования... но стоит-ли?
Вывод получается такой, что в общем-то дело не в СУБД. А в php. PHP не может нативно возвращать многоуровневые массивы от СУБД. Жаль...
Всё делаеться, на SQL выбираем набор данных, на PHP формируем нам нужный массив. Мне уже не раз приходилось генерировать дерево из результата запроса, а потом в правильном порядке складывать его обратно в двумерный массив для вывода (так нужно из-за того, что на SQL не возможно правильно отсортировать дерево по алфавиту к примеру). Горбунов Олег P.S. подпись лол
Можно такую тему замутить?: [sql]select *.groups, (select * from rights) as rights from groups, rights[/sql] или так: [sql]select *.groups, *.rights as rights from groups, rights[/sql]