我有一张桌子"exercise_results".人们在开始时投入他们的结果,然后在两个月之后将他们的结果放在他们的结果中,看看他们有多少改进.它们的开始集的exercise_type_id为"1",而结束集的exercise_type_id为"2".
我需要一种方法将其显示到HTML表中,如下所示:
一个foreach循环,但这是单行.我在将两行合并为一行时遇到了麻烦.我想这可能就像某种MySQL加入一样简单?我们通过person_unique_id识别每个人.
这是我的领域:
id | person_unique_id | person_name | exercise_type_id | mile_running_time | bench_press_weight_lbs | squat_weight_lbs | date_of_exercise_performed
Run Code Online (Sandbox Code Playgroud)
示例行:
1 | J123 | John Smith | 1 | 8 | 200 | 300 | 2010-03-20
2 | J123 | John Smith | 2 | 7 | 250 | 400 | 2010-05-20
3 | X584 | Jane Doe | 1 | 10 | 100 | 200 | 2010-03-20
4 | X584 | Jane Doe | 2 | 8 | 150 | 220 | 2010-05-20
Run Code Online (Sandbox Code Playgroud)
我尝试了一些解决方案,但我迷路了.任何帮助都会很棒.谢谢!
编辑:
在回应下面的评论时,我希望得到一些数据:
array 0 =>
array
'Exercise' =>
array
'person_unique_id' => string 'J123'
'person_name' => string 'John Smith'
'begin_mile_running_time' => string '8'
'end_mile_running_time' => string '7'
1 =>
array
'Exercise' =>
array
'person_unique_id' => string 'X584'
'person_name' => string 'Jane Doe'
'begin_mile_running_time' => string '10'
'end_mile_running_time' => string '8'
Run Code Online (Sandbox Code Playgroud)
lay*_*alk 17
您可以使用GROUP_CONCAT()来获得两行结果,如下所示:
SELECT person_unique_id, person_name,
group_concat( mile_running_time ) AS miles,
group_concat( bench_press_weight_lbs ) AS bench,
GROUP_CONCAT( squat_weight_lbs ) AS squat
FROM exercise_result
GROUP BY person_unique_id
Run Code Online (Sandbox Code Playgroud)
你的结果将是:
J123 | John Smith | 8,7 | 200,250 | 300,400
X584 | Jane Doe | 10,8 | 100,150 | 200,220
Run Code Online (Sandbox Code Playgroud)
然后你可以使用php explode和结果字段来获得每种类型的结果.