Я пытаюсь объединить несколько таблиц myqsl и затем обработать полученные массивы с помощью PHP, но у меня возникают проблемы при манипулировании моими данными для получения нужных группировок.
table.users+ ---------------uid
name
table.profile_values+ -----------------------шлагтовUIDcategory_value
table.profile_fields+ ---------------------шлагтовcategory_title
Вот мой sql-запрос:
SELECT users.name, profile_fields.category_title, profile_values.category_value FROM profile_values
INNER JOIN profile_fields
ON profile_values.fid=profile_fields.fid
INNER JOIN users
ON users.uid=profile_values.uid
ORDER BY users.name ASC
Используя I while loop для fetch_array (), как и ожидалось, я получаю массив для каждого номера строки, который выглядит примерно так:
Array (
[0] => Array (
[name] => Bob
[category_title] => Occupation
[category_value] => IT
)
[1] => Array (
[name] => Bob
[category_title] => Previous Experience
[category_value] => Very little.
)
...
)
Вывод, который я на самом деле хочу получить:
Array(
[name] => array(
[category_title 1] => value 1
[category_title 2] => value 2
...
)
....
)
Я провел большую часть дня, рассматривая различные примеры и не смог найтитот, который помогает мне понять лучшее место для вставки и группировки моих данных.Я видел примеров с использованием GROUP_CONCAT, что похоже на то, что я хочу, но я бы хотел сохранить свои данные в массивах, если это возможно.
Должен ли я использовать вложенные циклы foreach после того, как мои строки назначены для массивов, с использованием GROUP BY в моем выражении sql или с сочетанием обоих?