开发者

mysql query help needed - Group by parent

I'm trying to do a mysql query that will create an array of parent items, with their child items underneath. But I'm not 100% sure how. Here's what I have done so far:

SELECT * FROM categories as rf ORDER BY parent, name ASC

And here's what is being outputted (array):

Array
(
    [0] => stdClass Object
        (
            [id] => 7
            [name] => Safety Clothing
            [parent] => 0
        )

    [1] => stdClass Object
        (
            [id] => 8
            [name] => Safety Footwear
            [parent] => 0
        )

    [2] => stdClass Object
        (
            [id] => 9
            [name] => Workwear
            [parent] => 0
        )

    [3] => stdClass Object
        (
            [id] => 4
            [name] => Polos
            [parent] => 7
        )

    [4] => stdClass Object
        (
        开发者_StackOverflow社区    [id] => 3
            [name] => Shirts
            [parent] => 7
        )

    [5] => stdClass Object
        (
            [id] => 6
            [name] => Jackets
            [parent] => 9
        )

    [6] => stdClass Object
        (
            [id] => 1
            [name] => Pants
            [parent] => 9
        )

    [7] => stdClass Object
        (
            [id] => 2
            [name] => Shirts
            [parent] => 9
        )

    [8] => stdClass Object
        (
            [id] => 5
            [name] => Shorts
            [parent] => 9
        )

)

As you can see the child items have the id of the parent items (parent is set to 0), but I'm not sure how to merge it all together to do an array something like this:

parent

-- child

-- child

parent

parent

-- child

-- child

-- child

Any help would be appreciated :)


Also

SELECT parent,GROUP_CONCAT(name) as names FROM categories as rf GROUP BY 1;

You will get one row for every parent with parent id in the first column and child names separated by comma on the second column.


If it is possible to build nested arrays using the data from that array: Each object would have an Array variable. Then after the initial array is built, move the children under their parent manually by parsing the initial array.

The method that parses would be recursive, and would take the initial array and the child array it is currently building.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜