我正在使用一个简单的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>";
输出:按要求
使用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>";
输出:按要求
答案 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