【问题标题】:Formatting PHP array from SQL query从 SQL 查询格式化 PHP 数组
【发布时间】:2019-10-03 15:35:31
【问题描述】:

我有三张表:玩家、分数和锦标赛

我正在尝试将 SQL 查询格式化为 PHP 数组,在该数组中我可以将数据解析为 html 表,行中的标题为:每个锦标赛的位置、球员姓名和球员得分。例如

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 循环以更改数组。

【问题讨论】:

  • 你能解释一下困难是什么吗?在我看来,您拥有在返回的 PHP 数组中创建 HTML 表所需的所有信息。
  • 那么您需要向我们提供您的 while 循环并说出问题所在。
  • 我建议根据tournament_id将数组拆分为2个数组,然后循环到create a dynamic table

标签: php sql


【解决方案1】:

如果我理解正确的话:

    $arr = [];
    while($row = mysqli_fetch_assoc($result))
    {
        $tournament_id = $row['tournament_id'];
        if (!isset($arr[$tournament_id])) {
            $arr[$tournament_id] = [];
        }
        $arr[$tournament_id][] = $row;
    }

【讨论】:

  • 这太完美了。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 2013-08-06
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多