5
<?php       
 $player[] = array();
    $team_id = $_SESSION['tid'];

    $team_pids = $con->prepare("SELECT p_id FROM players_to_team WHERE t_id = ?");

    $team_pids->bindParam(1,$team_id);

    $team_pids->execute();

    while($info = $team_pids->fetch(PDO::FETCH_ASSOC))
    {
            $player[] = $info['p_id'];
            echo $info['p_id'];
    }
    $pl_1 = $player[0];
    .
        .
        .
    $pl_10 = $player[9];

    echo $player[0]; //notice here
    echo $pl_1;      //notice here
?>
<table>

$query = $con->prepare("SELECT role,name,value FROM players WHERE p_id = '".$pl_1."'");
// notice here
               $query->execute();

               while($result = $query->fetch(PDO::FETCH_ASSOC))
               {
                     echo "<tr>";  
                     echo "<td>".$result['role']."</td>";
                     echo "<td>".$result['name']."</td>";
                     echo "<td>".$result['value']."</td>";
            }
?>
</tr>
</table>

$info 配列をエコーすると正常に動作しますが、$player 配列または $pl_1 変数または $result 配列値をエコーすると通知が表示されます...配列から文字列への変換と o/p が表示されません。なぜ?

4

2 に答える 2

11

先頭 (2 行目)を$player[] = array();by に置き換えてみてください 。$player = array();

これは、この変数のインデックス 0 で配列を宣言しているためです[]。したがって、配列に配列を配置して、多次元にしようとします。

于 2013-10-24T11:55:14.563 に答える