2009-10-11 9 views
0

J'ai données dans un MYSQL DB qui ressemble à ceci:données de hiérarchie MySQL à chaîne JSON en PHP

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

et veulent sortie via PHP en tant que chaîne JSON heirarchical où 'top' a une collection de 'milieu de etc

Obtenir ma dérive? Quelqu'un at-il une fonction PHP récursive pour aider?

Répondre

2

si vous avez vos données dans un tableau PHP/tableau associatif, vous pouvez utiliser les fonctions JSON de PHP 5.2:

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

continuez à lire sur cette page dans la zone de commentaires, ils Donner pratiquement le code sans le plaisir de le découvrir soi-même.

0

Vous pouvez utiliser la fonction ici http://tagarga.com/blok/on/061029 pour convertir votre liste d'adjacences en un tableau imbriqué, puis 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]); 
Questions connexes