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

mysqlからの再帰的phpを使用した配列の作成

    親子配列をグループ化するためのこのコードは素晴らしいと思いました。私はこれまで何の問題もなく4つの深さでテストしました。ただし、これは再帰関数ではありません。

    $tree = null;
    foreach($results as $result)
    {
        $thisref = &$refs->{$result['id']};
        foreach($result as $k => $v)
        {
            $thisref->{$k} = $v;
        }
        if ($result['parentId'] == 0) {
            $tree->{$result['id']} = &$thisref;
        } else {
            $refs->{$result['parentId']}->children->{$result['id']} = &$thisref;
        }
    }
    
    $tree; // contains the newly sorted tree.
    

    状況に完全に対応するには、いくつかの変更が必要になる場合があります。ただし、基本的にはすべての結果をループし、参照によってそれらを結合します。

    末尾の$treeに注意してください データ型はobjectです arrayではありません

    幸運

    更新

    アレイをそのまま作成できます

    $query = "SELECT * FROM pB_test ORDER BY parentId ASC";
    $dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());
    
    $results = array();
    while($row=mysql_fetch_assoc($dbresult)) 
    { 
        $results[]=$row 
    }
    


    1. MySQL:アッパーキャメルケース(パスカルケース)でテーブルに名前を付けることはできません

    2. SQLを介したシーケンス内の文字のカウント

    3. Oracleサブクエリは、2レベル上の外部ブロックからの変数を認識しません

    4. データベースを複数の場所から中央データベースに、またはその逆に同期するための戦略