在 PHP 中仅将 MySql-Query 的列作为标题获取一次(即使有多个结果)
Get Column of MySql-Query as headline only once in PHP (even if there are several results)
所以,这个名字是怎么说的还是不是怎么说的,因为我真的不知道如何命名我的问题,我正在努力实现以下目标。
我得到了一个 MySQL-Query,结果如下:
id | name | position
1 Kevin CEO
2 Sarah Developer
3 Daniel Developer
4 Michael Marketing
5 Tom Marketing
现在我需要像这样在前端显示信息:
**CEO**
Kevin
**Developer**
Sarah
Daniel
**Marketing**
Michael
Tom
这意味着我只需要一次 position-column 作为标题,在它下面我想显示这个职位的匹配人员。
我无法对每个位置进行单独查询,因为在我的 table 中我有 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`
所以,这个名字是怎么说的还是不是怎么说的,因为我真的不知道如何命名我的问题,我正在努力实现以下目标。
我得到了一个 MySQL-Query,结果如下:
id | name | position
1 Kevin CEO
2 Sarah Developer
3 Daniel Developer
4 Michael Marketing
5 Tom Marketing
现在我需要像这样在前端显示信息:
**CEO**
Kevin
**Developer**
Sarah
Daniel
**Marketing**
Michael
Tom
这意味着我只需要一次 position-column 作为标题,在它下面我想显示这个职位的匹配人员。 我无法对每个位置进行单独查询,因为在我的 table 中我有 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`