Данные иерархии MySQL в строку JSON в PHP - PullRequest
0 голосов
/ 11 октября 2009

У меня есть данные в базе данных MYSQL, которые выглядят так:

id,parentid,name,count
1,0,top,10
2,1,middle1,5
3,1,middle2,5
4,3,bottom1,3
5,3,bottom2,2

и хотите вывести его через PHP в виде иерархической строки JSON, где «top» содержит коллекцию «middle» и т. Д.

Получите мой дрейф? У кого-нибудь есть рекурсивная функция PHP, чтобы помочь?

Ответы [ 2 ]

2 голосов
/ 11 октября 2009

если у вас есть данные в массиве PHP / ассоциативном массиве, то вы можете использовать функции JSON PHP 5.2:

http://www.php.net/manual/en/function.json-encode.php

продолжайте читать на этой странице в области комментариев, они практически отдают код без удовольствия выяснить его самостоятельно.

0 голосов
/ 11 октября 2009

Вы можете использовать функцию здесь http://tagarga.com/blok/on/061029, чтобы преобразовать ваш список смежности во вложенный массив, затем json_encode () it.

    function adj_tree(&$tree, $item) {
        $i = $item['id'];
        $p = $item['parentid'];
        $tree[$i] = isset($tree[$i]) ? $item + $tree[$i] : $item;
        $tree[$p]['_children'][] = &$tree[$i];
    }

    $tree = array();
    $rs = my_query("SELECT * FROM categories");
    while($row = my_fetch($rs))
        adj_tree($tree, $row);

    echo json_encode($tree[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...