从数组中获取数据在for循环中不起作用

时间:2013-06-10 14:28:34

标签: php for-loop pdo

获取数据以获取我需要的ID数组

$STH = $DBH->prepare("SELECT char_id FROM att WHERE raid_id=:id AND spec=:spec AND status=:status");
$STH->bindValue(":id", $id);
$STH->bindValue(":spec", $curr_spec);
$STH->bindValue(":status", $curr_status);
$STH->setFetchMode(PDO::FETCH_ASSOC);
$STH->execute();
$temp1 = $STH->fetchAll();

此代码完美无缺。它返回正确的值。

$temporary =$temp1[0]["char_id"];
echo $temporary;

但是当我尝试从这个for循环中的数组中获取值时,它在echo中不返回任何内容。

for($i=0; $i < 2; $i++)
{
$tempor =$temp1[i]["char_id"];
echo $tempor;

//...
}

我花了很多时间,但我自己无法解决。如果可能的话,请帮助我。

1 个答案:

答案 0 :(得分:4)

不是将其更改为 $ i 。您正在访问未定义的常量,error_log会显示您发现错误。

$tempor =$temp1[i]["char_id"];

----------------^ change it to $i

提示:而不是使用进行循环,您可以尝试使用 foreach 循环并拥有一个只会循环前2条记录的计数器。