Итак, как говорит само название или нет, потому что я не знал, как назвать свою проблему, я пытаюсь добиться следующего.
Я получил 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
для этой позиции, перечисленной под ним.
Я надеюсь, что смог объяснить свою проблему достаточно хорошо.
Вы можете один раз просмотреть цикл и сделать позицию ключом в новом массиве.
$newArray = [];
foreach($myQueryResult as $res){
$newArray[$res['position']][] = $res['name'];
}
Это приводит к такому выводу:
Array (
"CEO" => [ "kevin" ],
"Developer" => [ "Sarah", "Daniel" ],
"Marketing" => [ "Michael", "Tom" ]
)
Используйте этот запрос:
SELECT `position`, GROUP_CONCAT(name SEPARATOR '<br>') as name FROM `YourTableName` GROUP BY `position`