1

私は次のものを持っています:

ID NAME PAREN_ID
1   a    null
2   b    null
3   c     2
4   d     3

ID 4 のアイテムとそのすべての親をリストしたいので、取得したいと思います。

4 d 3
3 c 2
2 b null

私は何かを試しました:

SELECT * FROM categories c1
JOIN categories c2 ON c2.ID = c1.PARENT_ID;

しかし、それは良い結果ではありません。ID 4 にフィルタリングしようとしても、何も返されません。そのMySQL!

4

1 に答える 1

0

MySQLでどのようにできるかよくわかりません。あなたの最善の策は、すべてを再帰的にフェッチすることだと思います。

function getCategories( $id ) {
    $ret = array();
    $cat = mysql_query( 'SELECT * FROM categories' );
    $curid = $id;
    do {
        $ret[] = $cat[ $curid ];
        $curid = $cat[ $curid ][ 'PARENT_ID' ];
    } while ( $curid );
    return $ret;
}

PDO を使用するようにこれを変更する必要があります。

唯一の問題は、クエリが多くのデータを返すことです。

于 2012-08-15T13:01:07.883 に答える