2014-01-21 75 views
1

我有一個這樣的數據庫,用於餐廳自動化系統,我正在編碼以獲取有關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。 –

回答

1

如果你想不想做的結果在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