gpt4 book ai didi

php - 无法正确显示 FOREACH 循环的结果

转载 作者:行者123 更新时间:2023-11-29 12:48:03 26 4
gpt4 key购买 nike

我将代码切换到了 PDO,而且我几乎已经完成了,除了这部分,其中查询的所有结果都应该使用 foreach 语句显示。我知道数据已正确获取并正确存储在 $row2 中。

我需要做的是从 $results2 中获取“position”变量并向其添加 1,然后运行 ​​foreach 循环,其中position等于新数字...

在切换到 PDO 之前,我的代码运行良好,并且正确显示了 2 个预期结果:

$cont = $results2[0]->position;;
$cont++;

foreach ($results2 as $resulting) {
if ( $results2[0]->position = $cont )
{
echo "<hr><br><br>" . $resulting->text . "&nbsp;" . " <b>Suggested by: $resulting-
>display_name </b><br>|<b> <a href=\"$url\">Approve this contribution</a></b> | <b><a
href=\"$url\">delete this suggestion</a></b> |";
}
}

但是现在,foreach 在转换为 PDO 后只返回相同的第一个结果两次,如下所示:

//新 PDO 代码 - 不显示两个结果:

$results2->execute();
$row2 = $results2->fetchAll(PDO::FETCH_ASSOC);

$cont = $row2[0]['position'];
$cont++;

foreach ($row2 as $resulting) {
if ( $row2[0]['position'] == $cont )
{
echo "<hr><br><br>" . $row2[0][text] . "&nbsp;" . " <b>Suggested by:" . $row2[0]
[display_name] . "</b><br>|<b> <a href=\"$url\">Approve this contribution</a></b> | <b>
<a href=\"$url/?WID=$resulting->WID\">delete this suggestion</a></b> |";
}
}

最佳答案

看起来您的旧代码正在获取一个对象数组,而您的新代码正在获取一个数组数组(由 PDO::FETCH_ASSOC 指示)。

因此,虽然 $results2[0]->position 曾经可以工作,但您错误地将其替换为 $row2[0][position]。但是,在第二种情况下,position 需要加引号,因为它是数组索引。

如果您打开了所有错误报告,您就会很容易看到这一点。

这同样适用于 $row2[0][text]$row2[0][display_name]。除了这些索引上缺少引号之外,您可能确实需要 $resulting 而不是 $row[0],因为 $row[0] > 每次循环都会给你相同的值。因此,这些可能应该更改为 $resulting['text']$resulting['display_name']

因此,请将 $row2[0][position] 的所有实例替换为 $row2[0]['position']。另外,请听取约翰·鲁德尔的建议。

关于php - 无法正确显示 FOREACH 循环的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25168346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com