2012-10-27 41 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

嘿,那里,谢谢,这真是太棒了:)非常感谢! –