echo语句仅打印最近添加的行中的年份值。如何打印其他值?

问题描述 投票:0回答:1

我在数据库中定位表,具有等级,年,描述,...作为列,并且存在多行...我应该将$positions array返回到另一个php文件...我尝试过[ C0],但出现“未定义的偏移量:0”错误]

echo $positions[0]['rank'];
php mysql associative-array
1个回答
0
投票

将echo语句移到while循环中。

    function loadPos($pdo,$profile_id)
{
    $stmt=$pdo->prepare('SELECT * FROM position WHERE profile_id=:prof ORDER BY rank');
    $stmt->execute(array(':prof' => $profile_id ));
    $positions=array();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {

        $positions=$row;



    }
    echo $positions['rank'];

return $positions;
}

您现在不需要创建新变量。您可以使用$ row

while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
    $positions=$row;
    echo $positions['rank'];
}

似乎您不了解什么是while语句。我将从学习基本流控制开始。

==更新==

下面的评论指出$ positions应该是可以返回的数组。因此:步骤1-将$ positions设置为数组。第2步-将每一行放置在数组中。第3步-返回数组。以下代码无需担心打印行。它仅关注于创建和返回数组的方法。

while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
    echo $row['rank'];
}

希望很明显$ positions被创建为一个空数组。每次通过while循环时,该行都会添加到数组中。 []表示“下一个索引”。最后,返回$ positions。

© www.soinside.com 2019 - 2024. All rights reserved.