php - 在php中将mysql数据库结果插入多维数组

标签 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;
}

我尝试从谷歌寻找答案,但没有成功 我看到一个article来自SO,但我没有尝试过,因为在那篇文章中它使用 mysql_* 函数,而我使用 PDO 函数。请大家帮我解决这个问题

最佳答案

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

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

关于php - 在php中将mysql数据库结果插入多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595632/

相关文章:

python - 在Python中生成二维数组的排列矩阵

python - 将 pandas 数据帧转换为 NumPy 数组

javascript - 使用 Braintree 下拉 UI 选择定期计费的付款方式——或 : finding the payment method of a paymentMethodNonce

php - 以网络为源来编写原生 iPhone 应用程序

c - 无法将数组从另一个函数返回到主函数

mysql - 在应用程序部分设置 MySQL 唯一键或检查重复项?

php - 在不刷新页面的情况下刷新 mysql 驱动的下拉列表的内容

php - 为 python 中的参数化查询生成变量长度放置持有符字符串

php - 正则表达式匹配字符串中的单词或短语,但不匹配 URL 的一部分或 <a> </a> 标签内。 (php)

mysql - 我正在使用 Views Calc 模块但出现错误