sql >> Databasteknik >  >> RDS >> Mysql

Hur får jag kategorin på första nivån att bara visas en gång?

mata bara ut catname när det ändras. Du måste också beställa din fråga efter kategorinamn först.

$row = mysql_fetch_array($result);
$catname = $row["category_name"];
$subcatname = $row["subcategory_name"];
$last = $catname;

echo "<li>$catname</li><ul>"

while($row = mysql_fetch_array($result)) {
    $catname = $row["category_name"];
    $subcatname = $row["subcategory_name"];
    if($last != $catname){
        echo "</ul><li>$catname</li><ul>"
    }
    echo "<li>$subcatname</li>";
    $last = $catname;
}
echo "</ul>";

Edit:Läs bara frågan igen och vill säga att när det kommer till hierarkiska träd är det inte den bästa metoden att använda en förälder/barn (eller kategori/sub/subsub). Även om det fungerar, kräver det vanligtvis flera frågor och rekursiva funktioner för visning. Ett bättre tillvägagångssätt är att använda den kapslade uppsättningen som är gjord för just detta ändamål.



  1. Hibernate, MySQL och tabell med namnet Repeat - konstigt beteende

  2. Vad är skillnaden mellan pls_integer och binary_integer?

  3. Hur SESSION_CONTEXT() fungerar i SQL Server

  4. N:e högsta lönen