我希望在mysqli while循环中构建一个字符串。我有一个页面表,其中包含我的webapp的所有页面,但它已经成为友好的这些网址
我的表看起来像这样
ID | Page Slug | Parent
------------------------
1 | Accounts | 0
2 | Customers | 1
3 | Details | 2
说我用下面的函数WebApp_UOC_Construct_Url(3)调用页面ID为3,它会回显一个带有如下所示的URL
/accounts/customers/details
这个网址是我希望它传递给我的菜单,所以我知道该功能正在工作但是这只会在页面上回显我需要它在href内部返回一个值,所以如果我改变了echo返回并像这样调用函数
<a hef='" . WebApp_UOC_Construct_Url(3) . "'>Customer Details</a>
我只收到数据库中的最后一个条目,因此网址将如下所示
/details
创建上述
的其他可能方法function WebApp_UOC_Construct_Url($page_id)
{
global $webapp_db;
$get_URI = mysqli_query($webapp_db,
"SELECT * FROM wa_sys_navigation WHERE wa_nav_id = '" . $page_id . "' ");
while($found_URI = mysqli_fetch_array($get_URI))
{
WebApp_UOC_Construct_Url($found_URI['wa_nav_parent']);
echo "/" . $found_URI['wa_nav_slug'];
}
}
答案 0 :(得分:1)
如果仅将echo
更改为return
,则只会获得顶级函数调用结果。您需要汇总递归调用结果。
示例:
$parent = WebApp_UOC_Construct_Url($found_URI['wa_nav_parent']);
return $parnet . "/" . $found_URI['wa_nav_slug'];