2012-10-27 84 views
0

我是通過MySQL創建菜單的新手,並且需要樹形結構。但是,它不工作,如http://www.mattmaclennan.co.uk/a2由MySQL填充的下拉菜單上的子類別

上顯示我需要做的是將模型號碼分組到每個類別,不知道如何做到這一點。這是我的PHP代碼:

<? 
$output = mysql_query("SELECT * FROM bikes, bikeTypes WHERE bikes.model_id = bikeTypes.model_id"); 
echo "<ul>"; 
while($row = mysql_fetch_array($output)) 
{ 
echo "<li>" . $row['model']; 
echo "<ul>"; 
echo "<li>" . $row['bikeName'] . "</li>"; 
echo "</ul>"; 
echo "</li>"; 
} 
echo "<ul>"; 
?> 

我有一個表中(例如冒險,125CC等)的類別和表的型號。它發現數據很好,只是把它組織在一個令人困惑的正確結構中。任何想法傢伙?

謝謝!

+0

如果我理解正確的話,如果類在同一個表?如果是這樣,將「GROUP BY bikeCategory」添加到mysql查詢語句的末尾。 – Landjea

+0

嘿!我試過了,它只顯示每個類別的第一個記錄,如果你想看看網站更新。謝謝! –

+0

請不要使用'mysql_ *'函數來編寫新代碼。他們不再保持和 社會已開​​始[折舊過程(http://goo.gl/q0gwD)。請參閱 [紅盒子](http://goo.gl/OWwr2)?相反,你應該瞭解的方法制得 報表(http://goo.gl/orrj0),並請使用[PDO](http://goo.gl/TD3xh)或[庫MySQLi(HTTP://in3.php達網絡/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/YXyWL)會幫助你。 如果你選擇PDO,[這裏是很好的教程](http://goo.gl/b2ATO)。 另請參閱[爲什麼我不應該在PHP中使用mysql函數?](http://goo.gl/J5jAo) –

回答

1

嘗試

$result = array(); 
while($row = mysql_fetch_array($output)) 
{ 
    $result[$row['your_category_field_name']][] = $row; 
} 

foreach ($result as $category => $values) { 
    echo '<h4>'.$category.'</h4><ul>'; 
    foreach ($values as $value) { 
    echo "<li>" . $value['model']; 
    echo "<li>" . $value['bikeName'] . "</li>"; 
    } 
    echo '</ul>';  

}

+0

嘿,那裏,謝謝,這真是太棒了:)非常感謝! –