2013-07-16 28 views
1

我已經創建了一個CMS網站,現在我試圖使用PHP編碼的網站地圖,但我所做的代碼不完整。即它沒有顯示所有的子菜單數據。困惑,使用PHP編碼的網站地圖

Please look at this image。根據這張圖片,我在重量訓練(Fitness Exercises的子菜單)下有許多其他子菜單,但它們不可見。爲什麼他們不可見?

請指導/幫我在一個數據庫來解決這個問題

我的PHP代碼

foreach ($query_sitemap as $artrow) { 
     $datefromsql = $artrow->created_date; 
      $time = strtotime($datefromsql); ?> 

       <p>  
         <ul> 
          <?php echo '<b>'.$artrow->menu_name.'</b>'; ?> 


           <?php $submenucon=$this->menumodel->fetch_menu_byPid($artrow->id);//i.e select*from menu where parent_id=$mid 
           if (empty($submenucon)) { ?> 
            --- 
           <?php 
            } else { 
             foreach ($submenucon as $subtrow) { 
              ?> 
               <?php echo '<li style="color:gray;margin:">'.$subtrow->menu_name.'</li><br/>'; ?> 
             <?php 
             } 
            } 
           ?>  
         </ul> 
         </p> 
         <?php 
         $i++; 
        } 
       } ?> 
+0

其對我來說非常困難。請任何人告訴我一些邏輯。請 – user2173803

+0

不確定問題所在,但您只需在網站地圖中爲每個唯一的頁面/帖子放置一行,而不是每個菜單項的行,除非每個項目本身都是唯一的頁面。網站地圖通常不重要,因此您不必爲了匹配菜單而對其進行排序。如果要獲得自己的網站結構的邏輯很難,那麼也許你應該考慮改變你的數據庫結構 – Anigel

+0

所以你有子菜單子菜單嗎?然後,你應該使用一些遞歸來獲取所有菜單 – DarkBee

回答

1

你正在處理一個樹狀結構代表在這裏(在大多數siplistic /天真的樣子)。所以你應該做的第一件事就是根據返回的行構建一個樹狀結構,然後只有通過重新遍歷它才能顯示。

你可以閱讀更多關於此解析樹狀表:

Is it possible to query a tree structure table in MySQL in a single query, to any depth?

Implementing a hierarchical data structure in a database

What is the most efficient/elegant way to parse a flat table into a tree?

+0

是的,我看到你的例子,他們與我的問題類似。但是我仍然很困惑如何爲我的上述問題編寫代碼。請修改我的問題併爲其發佈答案。這將是非常有用的我 – user2173803

+0

我發現此鏈接http://paratechnical.blogspot.in/2011/02/php-sitemap-using-tree-data-structure.html你可以爲我的上述問題編寫代碼。我沒有連接到這種類型的任務,但我必須這樣做,以保存我的工作 – user2173803

+0

我自己使用遞歸來解決我的問題 – user2173803