使用for循环而不是foreach会引发错误

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

我使用一个简单的for循环来打印表的字段名称,它不起作用,但我使用foreach循环编写相同的代码,它工作得非常好。我对可能导致它的原因感到有些困惑。请帮我找一下编码错误的地方。

使用foreach-loop的代码:

$data=mysqli_query($con,"select * from `address` order by $id $sort");
echo "<tr>";
    $field=mysqli_fetch_fields($data);
    foreach ($field as $val) {
        echo "<th><a href='sort_table_data_asc_desc.php?fn=$val->name &ord=$sort'>$val->name</a></th>";
    }
echo "</tr>";

输出:按要求

enter image description here

使用for循环的代码:

$data=mysqli_query($con,"select * from `address` order by $id $sort");
$col=mysqli_num_fields($data);
echo "<tr>";
    $field=mysqli_fetch_fields($data);
    for ($i=0;$i<$col;$i++) {
        echo "<th><a href='sort_table_data_asc_desc.php?fn=$field->name &ord=$sort'>$field->name</a></th>";
    }
echo "</tr>";

输出:按要求

enter image description here

php for-loop foreach
1个回答
2
投票

mysqli_fetch_fields返回一个字段数组,因此在访问值时需要引用数组元素

echo "<th><a href='sort_table_data_asc_desc.php?fn={$field[$i]->name}&ord=$sort'>{$field[$i]->name}</a></th>";

正如你所看到的,我正在使用$field[$i],你可以访问从mysqli_fetch_fields回来的各个领域

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