sql >> Databáze >  >> RDS >> Mysql

Jak dosáhnu toho, aby se kategorie první úrovně zobrazovala pouze jednou?

vypište pouze catname když se to změní. Budete také muset nejprve seřadit svůj dotaz podle category_name.

$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:Jen si znovu přečtěte otázku úplně a chci říct, že pokud jde o hierarchické stromy, použití rodiče/dítěte (nebo kategorie/pod/podřazené) není tou nejlepší metodou. Ačkoli to funguje, obvykle vyžaduje více dotazů a rekurzivních funkcí pro zobrazení. Lepší přístup je použít vnořenou sadu který je vyroben přesně pro tento účel.



  1. Proč nemohu v příkazu DELETE použít alias?

  2. kódování UTF8 neodpovídá národnímu prostředí en_US; zvolené nastavení LC_CTYPE vyžaduje kódování LATIN1

  3. ORA-20001 v R12 Shromáždit statistiky schématu na 11g (FND_HISTOGRAM_COLS)

  4. Kód chyby 1064, stav SQL 42000:Máte chybu v syntaxi SQL;