5

私はテーブルを持っています

id,name,parent_id,designation列、

PHPで再帰関数を使ってツリーを作成したい。

everyparent_idid列を見ており、ユーザーがログインすると、ユーザーは自分のレコードと以下のすべてのレコードを表示できますparent_id

お気に入り

あ | ビ | c | D | え | ふ

Aユーザーがログインした場合、彼はすべて(A、B、C、D、E、F)の詳細を表示できます。Bがログインした場合、(B、c、D、E、F)を参照し、すべてのように... Fがログインした場合彼は自分の記録しか見ることができません.. よろしくお願いします

4

1 に答える 1

1

関数fetch_parentを作成します。

function fetch_parent($parent_id) {
    $query = 'SELECT * FROM `my_table` WHERE `parent_id`='. $parent_id;
    // use your own sql class/function whatever to retrieve the record and store it in variable $parent
    if($parent->parent_id !== null) { // asuming a 'root' record will have null as it's parent id
        fetch_parent($parent->parent_id); // here you go with your recursion
    }
    return;
}

次に、親にしたいレコードを使用して関数を呼び出します。

$first_parent_id = 8;
fetch_parent($first_parent_id);

ノート:

  • $ parent varは、mysqlの結果セットに応じて配列にすることもできます
  • mysqlインジェクションなどのクエリで$parent_idを確認してください。
于 2012-09-05T09:20:18.057 に答える