此问题已经在这里有了答案:
我有一个数据库表,该表具有两列,即id和category。我的目标是使用while循环将数据库中的类别回显为li和anchor。继承人的代码
<ul class="nav navbar-nav">
<?php $connect = new db();
$stmt = $connect->link->query("SELECT * FROM categories")->fetchall();
while($row = $stmt){
$category = $row["category"];
echo "<li><a href='#'>{$category}</a></li>";
}
?>
</ul>
我遇到错误,但对我来说没有意义。俗话说未定义的索引“类别”。它指的是我将$ category分配给$ row []的位置。
我确定因为我使用了print_r()函数并将其打印出来,所以我确定该数据已被拉出
编辑:根据要求从var_dump()输出
C:\wamp64\www\cms\CMS_TEMPLATE\includes\nav.php:21:
array (size=4)
0 =>
array (size=4)
'catagory_id' => string '1' (length=1)
0 => string '1' (length=1)
'category' => string 'bootstrap' (length=9)
1 => string 'bootstrap' (length=9)
1 =>
array (size=4)
'catagory_id' => string '2' (length=1)
0 => string '2' (length=1)
'category' => string 'javascript' (length=10)
1 => string 'javascript' (length=10)
2 =>
array (size=4)
'catagory_id' => string '3' (length=1)
0 => string '3' (length=1)
'category' => string 'html' (length=4)
1 => string 'html' (length=4)
3 =>
array (size=4)
'catagory_id' => string '4' (length=1)
0 => string '4' (length=1)
'category' => string 'css' (length=3)
1 => string 'css' (length=3)
$stmt
是数据库中所有行的列表-您使用->fetchall();
获取查询结果-这意味着它是一个二维数组,其中行由数字索引,每行都有字段名。因此,您最好替换