<?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が表示されません。どうして?
最初に$player[] = array();
を$player = array();
に置き換えてみてください(2行目)。
これは、[]
のために配列であると通知されるこの変数のインデックス0で配列を宣言するためです。したがって、配列を配列に配置して、多次元にします。
単に配列をecho
することはできません。 echo
はstringsしか出力できません。 _echo 'foo'
_は単純で、文字列を出力します。 echo array('foo' => 'bar')
の場合、echo
は正確に何をすることになっていますか? echo
がここに何かを出力するために、PHPはarray('foo' => 'bar')
を文字列に変換します。これは常に文字列_"Array"
_です。 PHPこれはおそらくあなたが望むものではないことを知っているので、それについて通知します。
問題は、配列を文字列のように扱うことです。修正してください。