将mysql数据库结果插入到php中的多维数组中

时间:2014-12-22 01:47:18

标签: php mysql arrays pdo multidimensional-array

嗨我正在尝试构建一个动态导航菜单类似于wordpress如何做到这一点我想但我的问题是我的脚本只从我的数据库检索1个值。我在这里要完成的是获取数据库中的所有菜单数据并将它们存储在多维数组中

我的数据库结构如下所示:

enter image description here

以下是我检索数据的方法

global $db;
    $sql = "SELECT * FROM lm_menu";
    $res = $db->prepare($sql);
    $res->execute();
    $result = $res->fetchAll();
    foreach ($result as $opt_h):
              $nav = array(
        array(
            'id' => $opt_h['id'],
            'name' => $opt_h['name'],
            'link' => $opt_h['ref'],
            'parent' => $opt_h['parent']
        )
    );
    endforeach;

这是读取数组的函数

    function GenerateMenu($nav)
{
    $html = '';
    $html = '<ul class="nav navbar-nav">';
    foreach($nav as $page)
    {
        $html .= '<li>';
        $html .= '<a href="' . $page['link'] . '">' . $page['name'] . '</a>';
        $html .= GenerateNavHTML($page['sub']);
        $html .= '</li>';
    }
    $html .='</ul>';
    return $html;
}

我尝试从谷歌寻找答案,但没有找到运气 我在SO中看到article,但我没有尝试过,因为在那篇文章中我使用了PDO函数时使用了mysql_ *函数。请帮助我这个人

1 个答案:

答案 0 :(得分:4)

问题是每次迭代,$nav = array(都会被覆盖。

不妨返回$nav = $res->fetchAll(PDO::FETCH_ASSOC);。无需循环和重新分配。