我有一个像这样的数据库用于餐馆自动化系统,我正在编码以获得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 :(得分: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>';