动态PHP,从SQL创建导航栏

时间:2015-11-06 20:33:47

标签: php mysql list dynamic navbar

我想知道我的代码出错了。 我在导航栏的无序列表中使用php构建了我的导航栏,以从名为“shop”的数据库中从名为“menu”的SQL表中检索菜单元素,但没有用。 我甚至有一个print_r,只是为了告诉我我的资源正在运行,但由于某种原因,整个代码并没有按照所写的方式创建菜单项。

这是代码:

    <?php 
$menu = [];
mysql_connect('localhost', 'root', '');
mysql_select_db('shop');

$result=  mysql_query("SELECT * FROM menu");
if ($result && mysql_num_rows($result)>0){

    while($row = mysql_fetch_assoc($result)){
        $menu[] = $row;
    }
}
echo '<pre>';
$error= print_r($menu);
$error = '' ;
 echo '</pre>';
?>

<!DOCTYPE html>

<html>
    <head>
        <link href="_CSS/style.css" rel="stylesheet" type="text/css"/>
            <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div class="site-wrapper">
            <div class="header">
                <div class="navbar">
                <ul>
                    <li><a href="./">Home</a></li>
                    <?php if(count($menu) >0) : ?>
                    <?php foreach ($menu as $row) : ?>
                    <li><a href="#"><?php $row = ['link']; ?></a></li>
                        <?php endforeach; ?>
                        <?php endif; ?>
                </ul>
                </div>       
               <div class="member">
                    <ul>
                        <li><a href="../login.php"></a>Login</li>
                        <li><a href="../Register.php"></a>Register</li>
                    </ul>
                </div>
               </div>
        </div>

遗憾的是,结果如下: enter image description here

2 个答案:

答案 0 :(得分:0)

你的问题是:

<?php $row = ['link']; ?>

应该是这样的:

<?php echo $row['link']; ?>

也许你在尝试这样做时感到困惑:

<?= $row['link']?>

答案 1 :(得分:0)

错误1:

您已使用

$row = ['link'];

您将收到此错误Notice: Array to string conversion in ..

所以你需要$row['link'];

错误2:

您需要使用echo

输出内容

<li><a href="#"><?php echo $row['link']; ?></a></li>

警告:不要使用mysql_*函数,因为它是depreciated而是使用mysqli或PDO进行更安全的操作!