Fork me on GitHub

Rapport de message :*
 

[NON RESOLU] affichage récursif du contenu d'un groupe d'elements pouvant contenir d'autres grou

Titre du sujet : [NON RESOLU] affichage récursif du contenu d'un groupe d'elements pouvant contenir d'autres grou
par sm@rt-IT sur 01/11/2006 18:29:43

Bonjour,
finalement, j'ai trouvé un problème, lorsqu'un groupe contient plusieurs autres groupes, cela ne fonctionne pas.
Voici mon code:Citation :

function TableauElements($groupe) // Reçoit le nom d'un groupe et renvoie, dans la variable globale $tableauE, tous les éléments contenus dans ce groupe
{ global $tableauE;
$tableauE = array();
static $i=0;
$where = '';
if (isset($groupe))
$where = "WHERE ZONENAME = '$groupe'";
else
$where = "WHERE ZONENAME = 'RACINE'";
$sql = 'SELECT * FROM ZONE_ELEMENT '.$where.' ORDER BY NAME_ITEM';
$result = mysql_query($sql);
if (!$result)
{
return false;
}
while ($myrow = mysql_fetch_Array($result)) {
if ($myrow['TYPE'] == 'Z'){
TableauElements($myrow['NAME_ITEM']);
}
else {
$tableauE[$i]= $myrow['NAME_ITEM']; //on met le nom de l'élément dans le tableau
$i++;
}

}
sort ($tableauE); //trie les éléments par ordre alphabétique
return true;
}

?>

Voici le contenu de ma table
Citation :

ID | ZONENAME | NAME_ITEM | TYPE
8 | 3 | 2 | Z
6 | 2 | 1 | Z
79 | 1 | ELEMENT1 | E
83 | 3 | 4 | Z
76 | 4 | ELEMENT2 | E

à lire comme ceci:
Citation :

le groupe 3 contient le groupe 2
Le groupe 2 contient le groupe 1
Le groupe 1 contient l'élément ELEMENT1
Le groupe 3 contient le groupe 4
LE groupe 4 contient l'élément ELEMENT2

Donc le groupe 3 contient le groupe 2 (et son contenu) et le groupe 4.
Mais lorsque j'appelle la fonction avec le groupe 3 en paramètre, je ne reçois que le contenu de la zone 4 càd ELEMENT2.
Si quelqu'un pouvait me dire comment modifier le code afin que tous les groupes soient pris en compte, cela serait super sympa! (help
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

50 Personne(s) en ligne (32 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 50 | Plus ...