2012-09-05 44 views
5

Tengo una tablacrear árbol a través de la función recursiva

id,name,parent_id,designation columnas,

que quiero crear árbol a través de la función recursiva en php.

cada parent_id está buscando en la columna id y si el usuario inicia sesión, entonces el usuario puede ver los registros propios y todos a continuación según parent_id.

como

Un | B | c | D | E | F

si un usuario inicia sesión entonces puede todos los detalles (A, B, C, D, E, F). Si B inicia sesión, vea (B, c, D, E, F) y como todos. .. si F inicia sesión, entonces puede ver solo registros propios ... Gracias por avanzar

+0

¿Existe un mapeo uno a uno entre 'id' y' parent_id', en ese caso, acaba de obtener un enlace de 'ids', no será un árbol. – mtk

+0

sí, mi tabla está mapeada una a una entre id y parent_id – user1625518

Respuesta

1

crear una función 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; 
} 

A continuación, sólo llamar a la función con el registro que desea son los padres de:

$first_parent_id = 8; 
fetch_parent($first_parent_id); 

Notas:

  • los $ matriz var también puede ser una matriz, dependiendo del mysql conjunto de resultados
  • FAVOR POR FAVOR, marque $ parent_id en la consulta para la inyección de mysql, etc.
Cuestiones relacionadas