Задавайте вопросы, мы ответим
Вы не зашли.
Есть таблица "suggestions":
-------------------------------------
suggestion_id | name | project_author
-------------------------------------
1 | aaa | Vasya
-------------------------------------
2 | ccc | petya
-------------------------------------
3 | bbb | Vasya
---------- --------------------------
4 | eee | Vasya
-------------------------------------
5 | ddd | petya
-------------------------------------
и есть таблица "files":
------------------------------
id_file | file_name | suggestion
------------------------------
1 | aaaaa.jpg | 3
------------------------------
2 | bbbbb.jpg | 2
------------------------------
3 | ccccc.jpg | 1
------------------------------
4 | ddddd.jpg | 2
------------------------------
5 | eeeee.jpg | 4
------------------------------
6 | ggggg.jpg | 3
------------------------------
7 | kkkkk.jpg | 5
------------------------------
8 | mmmь.jpg | 2
------------------------------
9 | ooooo.jpg | 1
------------------------------
10 | ppppp.jpg | 4
------------------------------
Как составить запрос, чтоб в итоге получилась структура массива:
Vasya_files = array(
[0] => aaa = array(
[0] => ccccc.jpg
[1] => ooooo.jpg
)
[1] => bbb = array(
[0] => aaaaa.jpg
[1] => ggggg.jpg
)
[2] => eee = array(
[0] => eeeee.jpg
[1] => ppppp.jpg
)
)
Другими словами, вытащить все "file_name", принадлежащие "suggestions", которые в свою очередь пренадлежат "Vasya"?
Неактивен
Скорее всего структура массива будет немножко другой, но смысл получится тот же.
Неактивен
Не то. Принт_эр выдал такую структуру:
Array
(
[0] => Array
(
[name] => 111111116
[file_name] => Upload.rar
)
[1] => Array
(
[name] => 111111118
[file_name] => hdfhdad.rar
)
[2] => Array
(
[name] => 111111118
[file_name] => Товар.rar
)
[3] => Array
(
[name] => 111111118
[file_name] => Paper.rar
)
[4] => Array
(
[name] => 111111118
[file_name] => Copia.zip
)
... ... ...
)
просто отсортированы по [name]
Неактивен
Вполне себе то . Просто следует сделать дополнительные действия на клиенте, что-то вроде
Неактивен
Вот вот. И я о том же. Или временную таблицу создавать, что-ли. Но так как в SQL не силён, - вот и прошу помощи. То, что вложенным форичем обходить можно - это я сделал. Но дополнительные запросы при обходе массива - не дело.
Отредактированно lutsk (17.01.2013 23:41:31)
Неактивен
А в чем проблема-то так пройти по массиву? MYSQL он возвращает таблицы, а структура, которую Вы хотите не таблица, а нечто посложнее. Плюс опять же - Вы же извлекаете элементы из, можно так сказать, "MySQL" с помощью mysql_fetch_array? Ну так и создавайте массив по ходу, как я Вам написал.
Неактивен
Сейчас получается такой ход выполнения приложения:
Формирую mysql_fetch_array со значениями suggestion_id => name, где project_author = Vasya. Форичем обхожу. И при каждой итерации приходится формировать ещё один mysql_fetch_array suggestions => file_name, где suggestions = suggestion_id в родительском фориче.
Вот и думаю, что это не хорошо. Здаётся мне, что такая задача решаема на уровне базы данных.
Отредактированно lutsk (17.01.2013 23:58:38)
Неактивен
Так-с... Давайте отделять зерна от плевел - вопросы по php обсуждать здесь не будем (или во всяком случае отложим на попозже). Сервера реляционных баз данных возвращают выборки в ввиде строк, столбцов или таблиц. У Вас есть две таблицы, какую результирующую выборку Вы хотите получить?, приведите ее сюда. В виде таблицы, строки или столбца.
Неактивен
Видимо все-таки вложенным foreach придется делать. Древовидной структуры не сделать таблицей.
Неактивен