2014-06-29 72 views
0

我想用mysql創建一個動態頁腳菜單(不是多層次)。帶MySQL的PHP​​動態頁腳菜單

我的MySQL表像之下...

--------------------------------------------------- 
| menu_id | menu_name | menu_url | short_id | 
---------------------------------------------------- 
| 1  | Home  | index.php | 1   | 
---------------------------------------------------- 
| 2  | Contact Us | contact.php| 3   | 
---------------------------------------------------- 
| 3  | About Us | abt.php | 2   | 
---------------------------------------------------- 

的HTML結構是這樣......

<div class="footer-menu"> 
<ul> 
    <li><a href="index.php">Home</a></li> 
    <li><a href="abt.php">About Us</a></li> 
    <li><a href="contact.php">Contact Us</a></li> 
</ul> 
</div> 

我已經編寫像...

mysql_select_db($db,$con); 
$f_menu_qry = "SELECT * FROM footermenu ORDER BY short_id ASC"; 
$fm = mysql_query($f_menu_qry,$con); 
$f_menu = mysql_fetch_assoc($fm); 
$totrows = mysql_num_rows($fm); 
$menu_name = $f_menu['menu_name']; 
$menu_url = $f_menu['menu_url']; 

    public function getFooterMenu(){ 
    global $fm, $f_menu, $menu_name, $menu_url, $totrows; 
    $footer_menu = ''; 
    $cnt = 0; 
    while ($clt_f_menu = mysql_fetch_assoc($fm)){ 
     $cnt++; 
     $footer_menu = '<li><a href="'.$menu_url.'">'.$menu_name.'</a></li>'; 
     if($cnt == $totrows){ 
      return; 
     } 
    } 
    echo $footer_menu; 
    } 

的輸出應該像Home/About Us/Contact Us

但輸出結果只顯示Home

我已經嘗試過不同的過程,但那些顯示錯誤(可能是我的錯誤代碼),但這次它顯示至少一個鏈接。

我無法做到。

我該怎麼辦?

回答

1

首先,它不是一個好的做法是使用舊版本的MySQL擴展。最好使用PDO或MySQLi。

什麼辦法,我已經修改了你的代碼位。你可以試試這個。希望它的工作..

mysql_select_db($db,$con); 
$f_menu_qry = "SELECT * FROM footermenu ORDER BY short_id ASC"; 
$fm = mysql_query($f_menu_qry,$con); 

$clt_f_menu = array(); 
while($rows = mysql_fetch_array($fm)) 
{ 
    $clt_f_menu[$rows['menu_id']] = array(
      'menu_name' => $rows['menu_name'], 
      'menu_url' => $rows['menu_url'] 
     ); 
} 

echo '<div class="footer-menu">'; 
    echo '<ul>'; 
    foreach ($clt_f_menu as $key => $value) { 
     echo '<li><a href="'.$value['menu_url'].'">'.$value['menu_name'].'</a></li>'; 
    } 
    echo '</ul>'; 
echo '</div>'; 
+0

我試過你的代碼。它顯示「關於我們/聯繫我們」,但沒有顯示「家」 – Raj

+0

得到了我的答案。謝謝@ mi6crazyheart – Raj

0

沒有與

$footer_menu = '<li><a href="'.$menu_url.'">'.$menu_name.'</a></li>'; 

$ footer_menu將只能從最後一個循環的內容主要包括兩個方面,因爲「=」將覆蓋它在每個循環,並且您使用此全局變量,因爲他們的內容僅從第一行開始。

試試這個:

所有的
mysql_select_db($db,$con); 
echo getFooterMenu($con); 

public function getFooterMenu($con){ 
    $sql = "SELECT * FROM footermenu ORDER BY short_id ASC"; 
    $mid = mysql_query($sql,$con); 
    $footer_menu = ''; 
    while($rs = mysql_fetch_assoc($mid)) { 
    $footer_menu.= '<li><a href="'.$rs["menu_url"].'">'.$rs["menu_name"].'</a></li>'; 
    } 
    return $footer_menu; 
}