我如何 return 来自 MySQL 的数据作为导航栏链接

How can I return data from MySQL as navbar links

我想 return 我的 table 中的一些数据作为导航栏链接,我的 table 包含以下信息:

然后我这样编码:

<?php 
$result = $db->query("SELECT * FROM topnav ORDER BY 'table_id' ASC");   
while($row = $result->fetch_object()){
    echo "
    <li><a href='contact.html'>".$row->name_link."</a></li>
    <li><a href='about.html'>".$row->name_link."</a></li>
    <li><a href='news.html'>".$row->name_link."</a></li>
    <li><a href='news.html'>".$row->name_link."</a></li>
    <li><a href='news.html'>".$row->name_link."</a></li>
    <li><a href='blog.html'>".$row->name_link."</a></li>
    <li class='active'><a href='index.html'>".$row->name_link."</a></li>
    ";  
}
?>

但这是错误的,因为它打印的结果是:

我希望每个项目都打印一次,然后另一个 name_link 出现。

那我该怎么做呢?

假设 name_link 列的值与 html 文件相同,则:

<?php 
$result = $db->query("SELECT * FROM topnav ORDER BY 'table_id' ASC");   
while($row = $result->fetch_object()){
    echo "<li><a href='".$row->name_link.".html'>".$row->name_link."</a></li>";  
}
?>

这似乎更符合您的需要 - 从您的 table 返回的每行创建一个 <li>。 (我假设 href-link 是您 table 中的字段,应该用作 URL。)

<?php 
$result = $db->query("SELECT * FROM topnav ORDER BY 'table_id' ASC");   
while($row = $result->fetch_object()){
    echo "<li><a href='".$row->href_link."'>".$row->name_link."</a></li>";  
}
?>

您之前所做的是为 table 中的每一行重复整个菜单,这没有任何意义。