sql >> データベース >  >> RDS >> Mysql

最初のレベルのカテゴリを1回だけ表示するにはどうすればよいですか?

    catnameのみを出力します それが変わるとき。また、最初に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>";
    

    編集:質問を完全に読み直して、階層ツリーに関しては、親/子(またはカテゴリ/サブ/サブサブ)を使用するのは最善の方法ではないことを伝えたいと思います。動作しますが、通常、表示には複数のクエリと再帰関数が必要です。より良いアプローチは、入れ子集合 を使用することです。 これはまさにこの目的のために作られています。



    1. 15パズルのパターンデータベース(5-5-5)を作成するための実用的なソリューションが必要

    2. PostgreSQLでのsqrt()のしくみ

    3. PostgreSQLでのFloor()のしくみ

    4. これらの3つの一般的なアクセスの問題をトラブルシューティングする方法