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

时间:2017-12-19 19:34:32

标签: php for-loop foreach

我正在使用一个简单的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

1 个答案:

答案 0 :(得分: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