将数据库提取到树中

问题描述:

我有一个这样的数据库,用于餐厅自动化系统,我正在编码以获取有关php和mysql的体验。将数据库提取到树中

productcat | productname | productdesc | price | 
------------------------------------------------------- 
Drink  | Coke   | Ice cold coke | 3 
Drink  | Sprite  |Ice cold sprite| 3 
Food  | Kebab  |Delicious kebab| 10 
Food  | Rice   | Delicious rice| 5 

我想将它们提取到按类别划分的树中。

$data = mysql_query("SELECT * FROM $restadi") 
or die(mysql_error()); 

//urunler kategorilerinin altina yerlestiriliyor 
echo '<div id="menu">'; 
echo '<ul>'; 
while($db = mysql_fetch_array($data)) 
{ 
echo '<li class="kategori"><a href="#">'.$db['productcat'].'</a></li>'; 
echo '<ul class="urun"><li><a href="#">'.$db['productname'].'</a></li></ul>'; 
} 
echo '</ul>'; 
echo '</div>' 

很明显,这不符合我想要的方式。我怎样才能达到我想要的?

在此先感谢,并对我的马虎英语感到抱歉。

+0

用手先建的HTML。这会告诉你如何构建PHP。 –

如果你想不想做的结果在PHP中的树,你可以试试这个:

$data = mysql_query("SELECT * FROM $restadi ORDER BY productcat"); 

//urunler kategorilerinin altina yerlestiriliyor 
echo '<div id="menu">'; 
echo '<ul>'; 
$lastCategory = ""; 
while($db = mysql_fetch_array($data)) 
{ 

    if ($lastCategory != $db['productcat']) { 
     // close opened ul of subitems (skip first false positive change of category) 
     if (!empty($lastCategory)) { 
      echo '</ul>'; 
     } 
     echo '<li class="kategori"><a href="#">'.$db['productcat'].'</a></li><ul class="urun">'; 
     $lastCategory = $db['productcat']; 
    } 
    echo '<li><a href="#">'.$db['productname'].'</a></li>'; 
} 
// if there was at least one product, close last product list 
if (!empty($lastCategory)) { 
    echo '</ul>'; 
} 
echo '</ul>'; 
echo '</div>'; 
+0

是的,这只是我想要的方式。谢谢! – CanNuhlar