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

PHPで階層的なNESTEDSETデータを表示するにはどうすればよいですか?

    Stuが私に示したリンクに基づいて、チュートリアルは深さを決定するためのこのクエリを示しています:

    SELECT node.name, (COUNT(parent.name) - 1) AS depth
    FROM nested_category AS node,
            nested_category AS parent
    WHERE node.lft BETWEEN parent.lft AND parent.rgt
    GROUP BY node.name
    ORDER BY node.lft
    

    したがって、このようなものが機能するはずです:

    <?PHP
    $query = 'SELECT node.name, (COUNT(parent.name) - 1) AS depth
        FROM nested_category AS node,
                nested_category AS parent
        WHERE node.lft BETWEEN parent.lft AND parent.rgt
        GROUP BY node.name
        ORDER BY node.lft';
    
    $result = mysql_query($query, $db) or die (mysql_error($db));
    while ($row = mysql_fetch_assoc($result)) {
        for ($i = 0; $i < $row['depth']; $i++) {
            echo '==>';
        }
    
        echo $row['name'];
        echo '<br />';
        echo '<br />';
    }
    ?>
    

    次のように出力されます:

    Saws
    ==>Chainsaws
    ==>==>Red
    ==>==>Yellow
    ==>Circular Saws
    ==>Other Saws
    


    1. MYSQLクエリ/1週間前より古い日付(すべての日時はUTC)

    2. .SQLファイルを使用してMySQLデータベースを作成する

    3. Python / MySQLクエリエラー:`不明な列`

    4. nullでない場合は、他のテーブルのデータでテーブルを更新しますか?