2016-04-21 46 views
0

我期待在mysqli while循環內部構建字符串。我有一個包含了但是我的web應用程序的所有頁面的頁表就已經到搜索引擎友好的這些URL在while循環中構建要在外部使用的字符串

我的表看起來像這樣

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裏面返回一個值d所以,如果我改變回聲這樣

<a hef='" . WebApp_UOC_Construct_Url(3) . "'>Customer Details</a> 

返回並調用該函數我只接受在數據庫中的最後一個條目,因此URL看起來像這樣

/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

你能運行它之前打印您的SQL查詢:' 「SELECT * FROM wa_sys_navigation WHERE wa_nav_id =「」。 $ page_id。 「'」'?所以,我們知道,發生了什麼事。 – user4035

回答

1

如果你只改變echoreturn你將只能得到頂層函數調用的結果出現。您需要總結遞歸調用結果。

例子:

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

非常感謝。你爲我節省了很多時間 – Nathan