php - 从 SQL 查询格式化 PHP 数组
问题描述
我有三张桌子:球员、比分和锦标赛
我正在尝试将 SQL 查询格式化为 PHP 数组,在该数组中我可以将数据解析为 html 表,行中的标题为:Position, Player Name and Player Score for each individual tracking。例如
Tournament 1 (ID=1):
Position | Player Name | Score
------------------------------
1 | SIMON | 1000
2 | JAMES | 500
Tournament 2 (ID=2):
Position | Player Name | Score
------------------------------
1 | JAMES | 2000
2 | SIMON | 1000
我正在使用的 SQL 查询当前是:
FROM `player` p
JOIN `score` s ON p.player_id = s.player_id
JOIN `tournament` t ON s.tournament_id = t.tournament_id
ORDER BY t.tournament_id, s.score_value DESC";
$result = mysqli_query($link, $score) or die("Error in Selecting " . mysqli_error($conn));
$arr = array();
while($row = mysqli_fetch_assoc($result))
{
$arr[] = $row;
}
这给了我一个数组:
Array
(
[0] => Array
(
[user_name] => SIMON
[player_id] => 34
[score_value] => 1000
[tournament_id] => 1
)
[1] => Array
(
[user_name] => JAMES
[player_id] => 35
[score_value] => 500
[tournament_id] => 1
)
[2] => Array
(
[user_name] => JAMES
[player_id] => 35
[score_value] => 2000
[tournament_id] => 2
)
[3] => Array
(
[user_name] => SIMON
[player_id] => 34
[score_value] => 1000
[tournament_id] => 2
)
)
但我不确定如何格式化它以获得我需要的结果。我目前正在尝试更改 while 循环以更改数组。
解决方案
如果我理解正确的话:
$arr = [];
while($row = mysqli_fetch_assoc($result))
{
$tournament_id = $row['tournament_id'];
if (!isset($arr[$tournament_id])) {
$arr[$tournament_id] = [];
}
$arr[$tournament_id][] = $row;
}
推荐阅读
- jquery - 无法使用 jquery-ajax 将 json 数组发送到 web api
- java - ForkJoinPool 中递归任务和递归动作的区别
- python - 是否可以使用 Python 中的函数格式化字符串?
- c++ - 如何使用c++实现wmi类的链接?
- asp.net-web-api - ASP.NET Web API 侦听 0.0.0.0 而不是 127.0.0.1
- angular - Angular Dialog:找不到 DialogModule 的组件工厂。
- python - TensorFlow KeyError:使用 tf.contrib.predictor.from_saved_model 对 DNNClassifier 进行预测时出现“RegexReplace”
- chromium - CefSharp 与 Chromium 将文本渲染为小
- excel - 在文本框中使单词加粗
- docker - k8s 不下载 docker 容器