Получить столбец MySql-Query в качестве заголовка только один раз в PHP (даже если есть несколько результатов)

Итак, как говорит само название или нет, потому что я не знал, как назвать свою проблему, я пытаюсь добиться следующего.

Я получил MySQL-Query, который дает мне такой результат:

id | name     | position
1    Kevin      CEO
2    Sarah      Developer
3    Daniel     Developer
4    Michael    Marketing
5    Tom        Marketing

Теперь мне нужно показать информацию в Frontend следующим образом:

**CEO**
Kevin

**Developer**
Sarah
Daniel

**Marketing**
Michael
Tom

Это означает, что мне нужен столбец позиции только один раз в качестве заголовка, и под ним я хочу показать подходящих людей для этой позиции.
Я не могу сделать отдельный запрос для каждой позиции, потому что в моей таблице примерно 75 из них.

Так, как я могу достигнуть этого, с одной стороны, получить positionРезультаты моего запроса только один раз в качестве заголовка, а с другой стороны, получить каждый человек name для этой позиции, перечисленной под ним.

Я надеюсь, что смог объяснить свою проблему достаточно хорошо.

0

Решение

Вы можете один раз просмотреть цикл и сделать позицию ключом в новом массиве.

$newArray = [];

foreach($myQueryResult as $res){
$newArray[$res['position']][] = $res['name'];
}

Это приводит к такому выводу:

Array (
"CEO" => [ "kevin" ],
"Developer" => [ "Sarah", "Daniel" ],
"Marketing" => [ "Michael", "Tom" ]
)
1

Другие решения

Используйте этот запрос:

SELECT `position`, GROUP_CONCAT(name SEPARATOR '<br>') as name FROM `YourTableName` GROUP BY `position`
0

По вопросам рекламы [email protected]