构建在while循环中外部使用的字符串

时间:2016-04-21 08:39:41

标签: php mysql function mysqli

我希望在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'];
    }
}

1 个答案:

答案 0 :(得分:1)

如果仅将echo更改为return,则只会获得顶级函数调用结果。您需要汇总递归调用结果。

示例:

$parent = WebApp_UOC_Construct_Url($found_URI['wa_nav_parent']);
return $parnet . "/" . $found_URI['wa_nav_slug'];