PDO Left Join:显示记录一次而不是两次

PDO Left Join :Show record once instead of twice

我正在尝试 link 左联接两个表,然后显示玩家的名字和他选择的角色,但是当我回显结果时,我得到玩家的名字记录两次:

选手名:Jelle

选手名:Jelle

玩家角色的名字:甘道夫

玩家角色的名字:Aragorn

当我真正想要这个的时候:

选手名:Jelle

玩家角色的名字:甘道夫

玩家角色的名字:Aragorn

我知道如果玩家有两个角色,我会得到两次记录,但是我如何显示一次玩家的名字和所有其他相应的角色?

This is my code:



   try{
    $statement = $connection->prepare('
    SELECT *
        FROM TBL_Player
    LEFT JOIN TBL_Character
        ON TBL_Player.ID = TBL_Character.Player_ID
        WHERE TBL_Player.ID = 1;                
    ');
    $statement->execute();

    while (($Player = $statement->fetch(PDO::FETCH_OBJ)) !== false){
        echo "Player's first name: ".$Player->FirstName. "</br>";
        echo "Player's Character's first name: ".$Player->CharacterFirstName. "</br>";

    }

} 

catch (PDOException $e){
    echo 'ERROR: ' . $e->getMessage();
}

你可以使用一个计数器,只在第一次循环时输出玩家名字:

$i=0;
while (($Player = $statement->fetch(PDO::FETCH_OBJ)) !== false){
  if( $i == 0 ){
    echo "Player's first name: ".$Player->FirstName. "</br>";
  }
  echo "Player's Character's first name: ".$Player->CharacterFirstName. "</br>";
  $i++;
}

或者,如果您有多个玩家,您可以使用数组进行跟踪

$aryTracker = array();
while (($Player = $statement->fetch(PDO::FETCH_OBJ)) !== false){
  if( !in_array($Player->Id, $aryTracker) ){
    echo "Player's first name: ".$Player->FirstName. "</br>";
    $aryTracker[] = $Player->Id;     
 }
  echo "Player's Character's first name: ".$Player->CharacterFirstName. "</br>";

}