Obtenez tous les enfants, petits-enfants etc nœuds en vertu de parent à l'aide de php avec mysql résultats de la requête

J'ai essayé de comprendre mais je n'ai pas pris n'importe où.J'espère que quelqu'un peut venir à mon secours.

Mon problème est que je suis en utilisant la contiguïté de la liste modèle de données pour produire de ma hiérarchie de données mysql.Je peux récupérer le tableau (voir ci-dessous) dans un multidimension tableau avec le tableau associatif pour chaque élément. Ce que je veux faire est une fois que je reçois ce tableau , je veux obtenir un autre tableau avec tous les nœuds (enfant, petit-enfant, etc) en vertu d'un parent de l'id (y compris l'élément parent).J'ai juste ne peut pas séance d'entraînement comment code tihs en php.

Dans MySQL mon tableau s'affiche comme ceci:

id     name       parent_id
1  Electronics          0
2  Televisions          1
3  Portable Electronics 1
4  Tube                 2
5  LCD                  2
6  Plasma               2
7  Mp3 Players          3
8  CD Players           3
9  2 Way Radios         3
10 Flash                7

Je peux retrive toutes les lignes avec ce code dans un tableau associatif avec cette.

$r = mysql_query("SELECT * FROM test ");
        $data = array();
        while($row = mysql_fetch_assoc($r)) {
         $data[] = $row;
         }      

Obtient Des Résultats:

Array 
( 
[0] => Array 
( 
[id] => 1 
[name] => Electronics 
[parent_id] => 0 
) 
[1] => Array 
( 
[id] => 2 
[name] => Televisions 
[parent_id] => 1 
) 
[2] => Array 
( 
[id] => 3 
[name] => Portable Electronics 
[parent_id] => 1 
)
[3] => Array 
(
[id] => 4 
[name] => Tube 
[parent_id] => 2 
)
[4] => Array 
(
[id] => 5 
[name] => LCD 
[parent_id] => 2
)
[5] => Array
(
[id] => 6 
[name] => Plasma 
[parent_id] => 2
)
[6] => Array
(
[id] => 7 
[name] => Mp3 Players 
[parent_id] => 3 
)
[7] => Array 
(
[id] => 8 
[name] => CD Players 
[parent_id] => 3
)
[8] => Array 
(
[id] => 9 
[name] => 2 Way Radios 
[parent_id] => 3
)
[9] => Array
(
[id] => 10 
[name] => Flash 
[parent_id] => 7 
) 
)

Avec ces résultats, je veux filtre vers le bas avec un id.

Dire par exemple je voulais un tableau associatif de chaque nœud en vertu de l'Électronique Portable avec l'id de 3.(Utilisation de l'id pour le code)

Il serait de retour un tableau avec des lignes avec id:

  • 3 appareils Électroniques Portables (parent Sélectionné doit être inclus)
  • 7 Lecteurs Mp3 (Enfant)
  • 8 lecteurs de CD (Enfant)
  • 9 2 Radios bidirectionnelles (Enfant)
  • 10 Flash (Grand Enfant)

si Flash a eu des enfants, il serait de retour.

De sorte que le résultat final serait de retourner un tableau comme celui ci-dessus, cependant, seulement avec ces éléments.

Veuillez noter:
Je ne cherche pas une fonction qui crée une multidimension tableau de la structure de l'arbre (Déjà trouvé une solution pour que) .Je veux construire une fonction: fetch_recursive($id), qui reçoit un IDENTIFIANT et renvoie tous les éléments de ce niveau et dans les niveaux inférieurs etc etc.

Espère que cette aide

Merci d'avance

donc, ce que vous essayez de construire une fonction: fetch_recursive($id) qui reçoit une ID et renvoie tous les éléments de ce niveau et dans les niveaux inférieurs. sonne comme une simple fonction récursive. qu'avez-vous essayé de faire ? peut-on voir ton code ?
Oui c'est ce que je suis après , j'ai essayé d'écrire un peu de code cependant il n'obtiendrez pas n'importe où 😐
Je vois ce que vous êtes après, maintenant. Voir ma solution révisée.

OriginalL'auteur Benny33 | 2012-07-16