sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får jeg kategorien på første niveau til kun at blive vist én gang?

output kun catname når det ændrer sig. Du skal også bestille din forespørgsel efter kategorinavn 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:Bare genlæs spørgsmålet fuldt ud og vil gerne sige, at når det kommer til hierarkiske træer, er det ikke den bedste metode at bruge en forælder/barn (eller kategori/sub/subsub). Selvom det virker, kræver det normalt flere forespørgsler og rekursive funktioner til visning. En bedre tilgang er at bruge det indlejrede sæt som er lavet til netop dette formål.



  1. beregne timer baseret på arbejdstimer i Oracle SQL

  2. Hvad er Fortryd og fortryd i Oracle-databasen

  3. Hvordan opdaterer man mysql med python, hvor felter og indgange er fra en ordbog?

  4. Hvorfor returnerer PostgreSQL ikke null-værdier, når betingelsen er <> sand