嗨,我正在尝试构建一个类似于 wordpress 的动态导航菜单,我想是这样,但我的问题是我的脚本仅从数据库中检索 1 个值。我在这里试图完成的是获取数据库中的所有菜单数据并将它们存储在多维数组中
我的数据库结构如下所示:
这是我检索数据的方法
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/